Rust學習資料彙總

列舉一些學習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的問題.

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分佈式數據庫項目

先到這裏吧,後面學習到了再添加。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章