「官宣」Rust四周年
从2015年5月15日Rust 1.0版发布至今,取得了如下成绩:
- 连续四年StackOverflow的“最受喜爱的编程语言” (日报君感慨:近一年半看了很多社区内的各种动态,大家形容Rust用的最多的一个词是:Amazing,如果非要翻译成中文,我觉得「赞叹」比较好。)
- 稳定了嵌入式Rust
- rustc成为第一个专注于支持WASM的编译器
- Rust 2018 edition发布
- Crates.io通过了10亿次下载,拥有超过25,000个crate
- 现在全世界有超过100个聚会,分布在42个国家
- 6场新的大会在世界各地涌现(RustRush,RustCon Asia,Oxidize,Rust LATAM,Colorado Gold Rust,RustLab Italy)
这个清单如果继续写下去会很长,Rust已经在众多领域陆续开花了。Rust社区感谢有你!
为什么越来越多的知名项目用Rust来开发?
社区@Mike写的一篇文章,侧重分享了为什么Rust适合区块链开发。
「中文」Rust Async: 标准库futures api解析
「系列」Rust for OOP系列介绍
这位博主打算写一系列主题是Rust for OOP的文章,主要是针对有一定OOP语言开发经验的人来学习。可以先关注下。
在Rust中创建C/C++ API
这篇文章介绍了一些可以帮助自动生成C/C++ API的优秀工具。比如:
- bindgen, 可以根据给定的头文件自动创建Rust绑定代码。对C语言比较友好,但是对C++来说,用途有限。因为C++的继承处理比较麻烦。
- cbindgen,可以方便地为Rust项目生成C API。它还支持以C++风格输出数据类型和模板等。
- cpp,这是一个Rust crate,可以帮忙编写C++ API。它提供了一个
cpp!
宏,可以在其中嵌入c++代码。它可以方便和cbindgen搭配使用。
作者还总结了一些在Rust中创建C/C++API的准则:核心逻辑和FFI层之间应该明确分离,最好把FFI代码置于一个单独的crate中,这样做的好处是设计Rust API不会受到FFI的太多影响。
meta: 用于解析人类可读性文本的DSL解析库
可用于语言设计,自定义格式和数据驱动开发。该库提供了一种叫做「meta语言」的规则,用来告诉程序如何阅读要解析的文档。这些文档都是人类可读格式的。
最小化示例:
use piston_meta::*;
fn main() {
let text = r#"hi James!"#;
let rules = r#"
1 say_hi = ["hi" .w? {"James":"james" "Peter":"peter"} "!"]
2 document = say_hi
"#;
// Parse rules with meta language and convert to rules for parsing text.
let rules = syntax_errstr(rules).unwrap();
let mut data = vec![];
parse_errstr(&rules, text, &mut data);
json::print(&data);
}
输出:"james":true
rplidar.rs : 思岚科技RPLIDAR产品的Rust SDK
Rust比较适合机器人领域
see: 静态文件服务器
From 日报小组 @Chaos
日报订阅地址:
独立日报订阅地址:
社区学习交流平台订阅: