列举一些学习Rust的好资料,方便平常学习与查阅。大部分文档在官网Grow with Rust
一节都有列出,另一部分是平常学习时涉及到的文档资料。
这本书当然是要第一本阅读的了,入门首选。
Rust对单元测试的支持是非常友好的,可参考Writing Automated Tests这一章。
通过代码示例学习Rust。
Rust包管理工具,提供了编译、安装等功能。cargo build
编译真的很方便,就是编译大项目时时间稍微有点长。
这一本主要是Rust版本说明文档,相对2015版,2018版本的变化。
当前Rust版本已经到了2018,与之前的2015在很多地方都有不同,不过都能平滑过渡,还给提供了版本修复cargo fix
工具。Rust还是很赞的,可以在文档The Edition Guide,学习2015到2018的变化。比较突出的变化是异步支持async
、await
关键字,很多涉及到异步的库都会要求Rust版本为2018版本,还有在使用Trait对象时需要添加dyn
等等变化。如果你原先是老版本代码,到新版本编译时编译器都会给予提示,方便你从老版本到新版本。总体来讲变化并不大,更多的都是细节性的。
有变化的关键字含义:
async
- return a Future instead of blocking the current threadawait
- suspend execution until the result of a Future is readydyn
- dynamic dispatch to a trait object
这本是Rust进阶读物,比较有难度,比较底层一些。中文翻译:《Rust 高级编程》
Rust标准库,常用。
在这里可以查找丰富Rust第三方库。
Rust关键字
学习异步的好文档,中文翻译200行代码讲透RUST FUTURES的问题.
Rust异步编程
- grpc-rs : tikv团队的grpc实现,封装的C实现的grpc。
- tonic: Rust原生实现的grpc。
- mio : I/O库,简单封装了epoll(对Linux操作系统来讲)。
- tokio:实现了异步、非阻塞I/O、事件驱动,底层是mio。
mio从之前的v0.6现已到v0.7,而tokio也从v0.1到v0.2,尤其是tokio,之前v0.1变动比较大,所以实际项目中没有采用这个库,而是使用了原始的mio,真的很原始,写代码调试代码很累,代码比较离散,现在的v0.2,后面再有需要可以考虑使用了v0.2版本了。
gRPC的Rust实现,目前看有大概四五个版本实现,上面的两个版本实现个人认为是相对比较好的。
- libra :Facebook区块链项目
- tikv:国内pingcap分布式数据库项目
- parity: 以太坊Rust实现
- parity-bitcoin: 比特币的Rust实现