Skip to content

Latest commit

 

History

History
69 lines (42 loc) · 4.09 KB

Rust学习资料汇总.md

File metadata and controls

69 lines (42 loc) · 4.09 KB

列举一些学习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的变化。比较突出的变化是异步支持asyncawait关键字,很多涉及到异步的库都会要求Rust版本为2018版本,还有在使用Trait对象时需要添加dyn等等变化。如果你原先是老版本代码,到新版本编译时编译器都会给予提示,方便你从老版本到新版本。总体来讲变化并不大,更多的都是细节性的。

有变化的关键字含义:

  • async - return a Future instead of blocking the current thread
  • await - suspend execution until the result of a Future is ready
  • dyn - dynamic dispatch to a trait object

这本是Rust进阶读物,比较有难度,比较底层一些。中文翻译:《Rust 高级编程》

Rust标准库,常用。

在这里可以查找丰富Rust第三方库。

Rust关键字

学习异步的好文档,中文翻译200行代码讲透RUST FUTURES的问题.

Rust异步编程

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实现,目前看有大概四五个版本实现,上面的两个版本实现个人认为是相对比较好的。

Rust开源项目

  • libra :Facebook区块链项目
  • tikv:国内pingcap分布式数据库项目
  • parity: 以太坊Rust实现
  • parity-bitcoin: 比特币的Rust实现