RUST - 技术教程文章

Fiddler开启Https的时候出现unable to configure windows to trust Fiddler Root certificate问题

前言 通过log页面看到错误为:访问控制列表(ACL)结构无效。网上(baidu,bing,google)各种方式都试过了:如重置证书(Reset all certificates) 导出证书到本地(Export Root certificates to Desktop) 删除证书,重新搞 各种重装软件操作 ......然而都没用,家里和公司电脑都一样(家里重装系统搞定的)最后我的解决办法 建议先用常规的方法,实在没用再试下改方法重启服务CryptSvc。 右键单击HKEY_CURRENT_USER Software Microsoft Sys...

linux 安装 rust-lang【代码】

自动安装 apt install rust这个是不带cargo/rustup那些的 手动安装安装rustupwget https://github.com/rust-lang-nursery/rustup.rs/archive/1.14.0.tar.gztar xzvf 1.14.0.tar.gzcd rustup.rs-1.14.0./rustup-init.sh需翻墙。。如果半天不动,手动翻墙去下载如下安装文件。。wget https://static.rust-lang.org/rustup/dist/x86_64-unknown-linux-gnu/rustup-initvim rustup-init.sh注释掉103行的下载步骤。手动指定刚刚下载的安装...

allwefantasy:Rust FFI 实践

背景部门算法团队开始成长起来,开始有越来越多的尝试以及成果,但是现在工程方面严重的限制了(主要是做预测服务)他们的研究成果转化为实际输出的能力。去年下半年,我们就发现TF官方的Java binding 存在严重的内存泄露问题,而TF Java binding 因为封装包括训练和预测所需要的API,比较复杂,我们也难以更改。同时,使用TF serving,就需要提供标准的RPC调用来完成交互,而所有的数据处理等工作都是在Java端,这也对运维模式产生...

【Rust日报】 2019-05-08:Rust并发的实践研究【图】

关于await语法,官方已经安排上了#await尝试在Cloudsmith上发布你的crate#cloudsith #registryCloudsmith是Puppet Labs旗下的DevOps平台,目前支持Cargo。你可以把Cloudsmith作为crates.io之外的私人registry。本文介绍了如何使用cloudsmith-cli工具将你的crate发布到它的平台上。Read Morecargo registry 相关文档「论文」Rust并发的实践研究#concurrency #hashmap该论文通过实现一个并发无锁HashMap来研究Rust类型系统如何影响并...

【Rust日报】 2019-05-07:Await 语法预告【图】

Await 语法预告来自汉东兄。今天看了withoutboats发的博文,是关于Rust await语法的最后讨论结果,也许会有变化,但应该差不多了。 这我看完文章后总结的一张脑图,分享一下。官方语言核心团队倾向于 .await 这种后缀语法。社区也是炸开锅各抒己见的。最终决定会在5月23号做出。不管怎样,我支持官方的决定。Read Moreifmt - 插值式格式化宏库其实其它语言很多都有了。Rust一直显得比较生硬,格式化一个带变量值的字符串,要这样写...

如何理解 rust 中的 Sync、Send?

如何理解 Sync、Send?Sync 和 Send 是 rust 安全并发中两个至关重要的 marker,但绝大多数的文档或书籍每当谈到它们就只是直接抛出它们的语义:实现了 Send 的类型,可以安全地在线程间传递所有权。也就是说, 可以跨线程移动。实现了 Sync 的类型, 可以安全地在线程间传递不可变借用。也就是说,可以跨线程共享。这两句话的确很重要(没看过的读者可以多看几遍再继续阅读下文)。但如果只把这个拿出来,像我这样不熟练的 rust 用...

【Rust日报】 2019-04-28:一家金融公司已经把 Rust 用在高频交易领域【图】

Rust 嵌入式开发的一个小示例:用一个LED灯说出 Hello world要用一个 LED 灯说出 Hello world。当然是需要用到莫尔斯编码啦(就是港警匪片中经常出现的那个用手指或枪有节奏地发出声音的那个信号序列)。就像下面这个样子,视频地址 需fq。作者参考了 The Embedded Rust Book 和这个样板项目用了 openocd 来调试。然后向代码中灌入了:.... . .-.. .-.. --- ?.-- --- .-. .-.. -..作为数据源,小板子就闪起来了。结果 ...- . .-. -...

【Rust日报】 2019-04-24:Rust 2019 Roadmap

Rust核心团队发布Rust 2019 Roadmap#roadmapRust核心团队最近发布了Rust 2019 Roadmap RFC,主要的工作分为:治理。改进项目运作方式。包括整理RFC流程。完成已经开始但还未完成的工作。比如异步等。提高语言和工具的整体质量。包括改进编译时间和增强IDE支持等。Read MoreRust 2019 Roadmap RFC「官方演讲」Rust:未来四十年的语言#topic为什么是四十年?作者拿铁路百年史做了类比 1830年5月24日,美国第一条铁路(巴尔的摩—俄亥...

【Rust日报】 2019-04-18

用 Rust 写一个 Rougelike 游戏视频教程,9 分多钟,讲得轻松有趣,虽然是英文,但是不难懂。推荐。视频中用的这个库 tcod-rs,是 rougelike 工具库。另外还有一些 rust 的 rougelike 工具库,比如 quicksilver-roguelike。另外还有教程源码。sfsdb - 高性能 k-v 文件系统数据库作者宣称的特点是,简单,高性能,不需要额外学习,使用它就好像使用 Rust 语言自身的结构一样。比如:#[derive(Serialize, Deserialize, Debug, Clone,...

【Rust日报】 2019-04-17:官方异步runtime库发布

RustCon Asia 27位讲师介绍合集#rustconasiaRead More「官方」runtime: 为更容易地创建异步应用而生的库#runtime #asyncRuntime,是由Rust异步工作组发布的一个与平台无关的库,旨在使Async Rust既灵活又简单。该库也是异步生态系统标准化的基石。它通过以下方式实现:消除共享异步运行时的麻烦,包括I/O和异步执行程序遵循Rust标准库主导的API约定标准化运行时接口,实现应用程序和底层实现的分离,并且支持自定义运行时#![featur...

【Rust日报】 2019-04-15

Rust Crate星系#crate有人将crates.io的crate生态做了可视化,可以通过这个网站看到Rust crate的生态。Read MoreWASI探索(一) -- WASI简介与Wasmtime配置#wasi来自 @huangjj 的投稿Read MoreBugs:ggez做的小游戏#game来自 @pickfire 的投稿躲避游戏,避开虫子,获取分数,使用 ggez 框架, Hackathon 时写的,之后会在 rust-malaysia 写文章。bugs群讨论分享,关于rust在iOS开发中打包优化的问题#iOS「嵌入式Rust」atomic_bitfiel...

【Rust日报】 2019-04-14

laminar - 面向多玩家游戏的半可靠 UDP 协议这是 amethyst 项目下的底层网络库,可以独立使用。提供了可靠传输与不可靠传输的选择。发包use laminar::{Socket, Packet};// create the socketlet?(mut?socket,?packet_sender,?_)?=?Socket::bind("127.0.0.1:12345")?;// our datalet?bytes?=?vec![...];// You can create packets with different reliabilitieslet?unreliable?=?Packet::unreliable(destination,?bytes);let?reliab...

WebAssembly 与 Rust 综述

首先要说一句,WebAssembly 是一项极速发展的技术,互联网上流传的很多文章(17,18年所写)已经过时了。所以,请尽量查阅最新时间的相关描述文档。WebAssembly 是什么来看一下标准定义:WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for...

【Rust日报】 2019-04-13【图】

Pushrod 0.2.4#guiPushrod 是一個利用piston_window做的很陽春的GUI library0.24版有下面新特色Text Widget現在可以水平調整文字(靠左、靠右、置中)介紹 Push Button Widget介紹 Progress Widget介紹新的 callback 系統Read more感謝Chaos bot幫我們申請兩張优惠码#RustConAsia2019我申请了两个RustCon Asia大会门票九折优惠码: IZHKfP6 和 fAp7FK1,给有需要的朋友。购票通道RustCon Asia 吃货指南#RustConAsia2019有位當地人分享...

【Rust日报】 2019-04-12 - Rust 1.34 稳定版发布

Rust 1.34 稳定版发布#stable_rust$?rustup update stable该稳定版本包括如下变动:引入了cargo registries,此功能允许你指定crates.io之外发布的crate,甚至一些闭源的crate。文档测试支持?语法过程宏中的自定义属性#[attr()],#[attr[]], 和#[attr{}] 可以接受token流。之前的unrestricted_attribute_tokens Features。TryFrom和TryInto稳定弃用fn before_exec而使用unsafe fn pre_exec稳定了一些标准库API,比如Instant::checke...

Rust 又成为 SO 的开发者最爱语言【图】

Rust 一不小心,又(叕)成为 StackOverflow 年度调查的“开发者最喜爱的编程语言” 。对了,没错,已经是连续第四届了,所以是“叕”。本次调查 Rust 得分是 83.5%,力压第二名 Python 73.1% 10 个百分点。80%以上的开发者想用Rust开发SO有65%的开发者是开源贡献活跃者,这其中使用Rust、WebAssembly和Elixir的人贡献速率最高Rust的薪资较去年增高了(去年65k)Rust 在 2016, 2017, 2018 年 已经是三届 “Most Loved” 冠军。可...

【Rust日报】 2019-04-11

一封写给Rust宏的情书#macro本文不是宏教程,作者写这篇文章的目的就是为了让还没有使用过Rust宏的人,早点尝试一下宏。(真香预警)作者比较了Rust和其他语言(C/C++/Java)中的元编程,摘要:C宏和Cpp模板元编程。很容易引入难以发现的错误,并且会扰乱编译时间,在构建中引入不必要的复杂性。你是否见过错误使用模板而引发的编译器错误呢?Java注解。Java的注解功能很强大,可以在编译时使用,也可以在运行时执行,既可以用于代...

2021技术领域趋势报告:Rust继续增长、低代码是重要趋势【图】

喜欢就关注我们吧! OReilly 发布了一份《2021 年编程、运维、AI 和云计算的发展方向》报告,该报告基于 OReilly 在线学习平台产生的数据,就技术行业的趋势进行了一番分析。 编程语言方面,报告从使用情况、使用量的同比增长以及搜索查询次数几方面进行了分析。发现 OReilly 在线学习的主要语言包括有 Python(上升 27%)、Java(下降 3%)、C ++(上升 10%)、C(上升 12%)和 JavaScript(上升 40%)。值得一提的是,从 20...

【Rust日报】 2019-06-25:Rust中的记忆化【图】

sniffglue - Rust 实现的网络嗅探器这个库的特点是多线程,可以充分利用多核。可以放心地用在不安全网络中(可能是做了很完善的错误处理)。看看效果:Repotrgui - 又一个GUI框架新出来的一个,纯正的用Rust写GUI。借鉴于 IMGUI, MLIB, Love2D。其基本理念是利用 Widget trait 对象和 Container,来看一下其设计理念图:Repo【系列】Rust 的 OOP 编程研究这是一个系列文章,目的是对于有以往OOP编程经验的程序员,看一下在Rust中如...

【Rust日报】 2019-06-21:Typestate 模式

IntelliJ Rust 又更新了 #100主要新增了 const 常數關鍵字的高亮支持read moreScriptkeeper一個輔助測試 Bash 的程式假如你原本有個#!/usr/bin/env bashif [ -z "$(git status --porcelain)" ] ; then ?commit=$(git rev-parse HEAD) ?docker build --tag image_name:$commit .else ?exit 1fi你可以改成 toml 的格式tests: ?# builds a docker image when git repo is clean ?- steps: ? ?- command: /usr/bin/git status --porcel...

【Rust日报】 2019-06-19:Facebook的数字货币项目Libra由Rust实现【图】

Facebook的数字货币项目Libra由Rust实现#libra #facebook谢邀。昨天第一时间看了下白皮书。看看Libra的愿景,安全是重中之重。使用Rust写区块链,底层的内存安全有保证,也就是说杜绝了系统产生漏洞的可能性。另外从Libra的智能合约语言MOVE中看得出来,Rust对Libra的影响是很深的。如果说Rust是专门为内存安全而重新抽象和设计,那么MOVE就是为金融安全而重新抽象和设计。看看MOVE这个名字,它代表了资源只能在帐号间转移,而不会...

【Rust日报】 2019-06-17:Rust官网简体中文翻译,正式上线了。

Rust官网简体中文翻译,正式上线了。#official大家快来了解下Rust吧!!!Rust官网中文简体版【翻译】在Rust中调用Java代码#java通过j4rs这个库可以实现在rust中调用java,这篇翻译文章是该库的作者所写,介绍了j4rs项目的初衷和现状。Read More《使用Rust编写操作系统》系列文章新增一节附录《链接器参数》,#blogos探讨了另一种裸机程序适配链接器的解决方案和它的必要性。《链接器参数》还修改了第一到三章大量篇幅内容,适配了...

【Rust日报】 2019-06-13:重磅:Jetbrains 发布了 Rust 2019 生态报

与Rust生命周期打交道的经历总结这篇文章总结了很长一段时间以来,与生命周期打交道的一些心得体会。写得非常清晰,仔细。可供一读。Read MoreRust rand 库发布 v0.5,有不兼容更新同步还发布或升级了 rand_chacha, rand_distr, rand_pcg, rand_hc, rand_isaac, rand_xorshift, rand_xoshiro 等组件。Read Morefibridge - 用于浏览器中点对点直接流式缓冲的项目这是一个有趣的项目。我们想一想,如果我们想在两个浏览器中交换文件,...

【Rust日报】 2019-06-08:stego - 网络隐写术界的瑞士军刀【图】

Erst - ERB/JSP 那种 <% %> 的模板引擎Rust 中的模板渲染引擎已经有不少了,这一个是支持 ERB/JSP 渲染语法的库。Repoglobber - 扩展的通配模式匹配库glob 模式是这样一些:// Wildcardslet pattern = Pattern::new("*.rs").unwrap();assert!(pattern.matches("hey.rs"));assert!(!pattern.matches("hey.c"));assert!(pattern.matches("/src/test.rs"));assert!(!pattern.matches("/src/test.c"));// Rangeslet pattern = Pattern:...

【Rust日报】 2019-06-06:Bloom.sh - 推出了一套(目标是)比肩 Google【图】

OnceCell - 用于初始化全局变量的库之前我们一直在用 lazy_static! 这个库和宏来初始化全局变量,现在不需要宏了。直接用 OnceCell 就可以,像下面这样:use std::{env, io};use once_cell::sync::OnceCell;#[derive(Debug)]pub struct Logger { ? ?// ...}static INSTANCE: OnceCell<Logger> = OnceCell::new();impl Logger { ? ?pub fn global() -> &'static Logger { ? ? ? ?INSTANCE.get().expect("logger is not initialized"...

【Rust日报】 2019-06-05:actix-web 1.0 正式版发布【图】

actix-web 1.0 正式版发布#actixactix-web 1.0对于0.7来说,是一次比较彻底的重构。涉及架构重新设计、抽象也由Actor进一步升级到了Service。对于代码层面而言,就是用Service替代了之前的Handler。 1.0的代码也完成遵循Rust惯例,组件化开发,相比于0.7版本的一大坨代码,清爽了很多。重点说一下Service抽象,它是来自于领域驱动设计(DDD,Domain Derive Development)的概念。DDD要求开发者,构建软件的时候是以领域模型为基本单...

【Rust日报】 2019-06-01:用 Rust 实现 WebGPU 协议

dua - 并行的文件统计工具也就是 du 的翻版啦。这个用上了Rust的并行化技术。速度比原来的 du 更快,特别是在SSD下更快。比如像下面这样测试time du -sh real 0m1.003stime dua -t 8 real 0m0.378stime dua -t 1 real 0m0.971sRepo小技巧:cargo clean的时候,不想重新编译依赖,怎么办?cargo clean 之后,会重头开始编译,各种依赖会重新编译。那么如果只想重头编自己工程中的代码,不想把依赖全部重新编译呢?答案很简单:cargo...

【Rust日报】 2019-05-31:rust.cc社区提供了国内crates镜像

Enum的值如何作为类型這位寫C++的老兄想寫以前的Enumfn pet(_: Animal::Whale) {}fn pet(_: Animal::Dog) {}// or somehow describe a trait that forces its implementors to impl specific enum variants; not allow them to impl the whole enumtrait Petter<T> {fn pet(_: Animal::T);}rust的近似方案1struct Dog {}struct Whale {}enum Animal { ? ?Dog(Dog), ? ?Whale(Whale),}rust的近似方案2// given there is a trait Bar...

【Rust日报】 2019-05-30:使用最新的 async/await 的一些例子

一个说明借用/Move细节的鲜活例子如下面例子,直接传一个元组进去,不行。索引里面的元素,直接传,可以。为什么?fn f(input: (usize, &mut usize)) { ? ?unimplemented!()}fn call_f_a_bunch_of_times(input: (usize, &mut usize)) { ? ?for _ in 0..10 { ? ? ? ?// f(input); // ERROR: use of moved value ? ? ? ?f((input.0, input.1)); // OK ? ?}}问题在于,(usize, &mut usize) 没有实现 Copy,所以在循环中一传就报 ERROR...

【Rust日报】 2019-08-03:Rust 会在研究领域大展身手吗?

stable-bloom-filter - 稳定布隆过滤器用来对一个数据流中的重复数据进行筛选。是 BoomFilters 的 Rust 实现版本。Repo: https://github.com/u2/stable-bloom-filterRust 会在研究领域大展身手吗?作者写了一篇文章来表达自己的见解。答案是:会。原文值得一看。国内地址:https://docs.qq.com/doc/DQlBtWlBBbFNXeEt2原文地址:https://medium.com/@me_26124/rust-reverses-research-ruin-88641c11a99f通过 AVL 树来理解 RustAVL 树...