Rust学习资料汇总

2,293 阅读2分钟

列举一些学习Rust的好资料,方便平常学习与查阅。大部分文档在官网Grow with Rust一节都有列出,另一部分是平常学习时涉及到的文档资料。


The Rust Programming Language

这本书当然是要第一本阅读的了,入门首选。

Rust对单元测试的支持是非常友好的,可参考Writing Automated Tests这一章。

Rust by Example

通过代码示例学习Rust。

The Cargo Book

Rust包管理工具,提供了编译、安装等功能。cargo build编译真的很方便,就是编译大项目时时间稍微有点长。

The Edition Guide

这一本主要是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

The Rustonomicon(The Dark Arts of Unsafe Rust)

这本是Rust进阶读物,比较有难度,比较底层一些。

The Rust Standard Library

Rust标准库,常用。

crates.io

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

Keywords

Rust关键字

Futures Explained in 200 Lines of Rust

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

Asynchronous Programming in Rust

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分布式数据库项目

先到这里吧,后面学习到了再添加。