本文為 microsoft/RustTraining 的正體中文翻譯。 本翻譯為社群貢獻,非 Microsoft 官方翻譯。如有疑義,以英文原文為準。
授權條款 本專案採用 MIT License 和 Creative Commons Attribution 4.0 International (CC-BY-4.0) 雙重授權。
商標聲明 本專案可能包含專案、產品或服務的商標或標誌。Microsoft 商標或標誌的授權使用須遵循 Microsoft 商標與品牌指南。在本專案的修改版本中使用 Microsoft 商標或標誌時,不得造成混淆或暗示 Microsoft 的贊助。任何第三方商標或標誌的使用均須遵守該第三方的相關政策。
七門訓練課程,涵蓋從不同程式語言背景學習 Rust 的路徑,加上 async、進階模式(Advanced Patterns)與工程實踐的深入探討。
本教材結合了原創內容以及受 Rust 生態系中優秀資源啟發的概念與範例。目標是呈現一套深入且技術準確的課程,將散落在書籍、部落格、研討會演講和影片系列中的知識,編織成一個連貫且具教學結構的學習體驗。
免責聲明: 這些書籍為訓練教材,並非權威參考文獻。雖然我們力求準確,但請務必對照官方 Rust 文件和 Rust Reference 驗證重要細節。
- The Rust Programming Language — 一切的基礎
- Jon Gjengset — 進階 Rust 內部機制的深入直播,
Crust of Rust系列 - withoutboats — async 設計、
Pin與 futures 模型 - fasterthanlime (Amos) — 從第一原理出發的系統程式設計,引人入勝的長篇探索
- Mara Bos — Rust Atomics and Locks,並行(Concurrency)原語
- Aleksey Kladov (matklad) — Rust analyzer 洞見、API 設計、錯誤處理模式
- Niko Matsakis — 語言設計、借用檢查器(Borrow Checker)內部機制、Polonius
- Rust by Example 和 Rustonomicon — 實用模式與 unsafe 深入探討
- This Week in Rust — 啟發許多範例的社群發現
- ……以及 Rust 社群 中許多其他人,他們的部落格文章、研討會演講、RFC 和論壇討論為本教材提供了寶貴資訊——數量太多無法一一列舉,但深表感謝
選擇符合你背景的書籍。書籍按複雜度分組,讓你可以規劃學習路徑:
| 等級 | 說明 |
|---|---|
| 🟢 橋接 | 從其他語言學習 Rust——從這裡開始 |
| 🔵 深入探討 | 針對 Rust 主要子系統的專題探索 |
| 🟡 進階 | 給有經驗的 Rustacean 的模式與技巧 |
| 🟣 專家 | 前沿的型別層級與正確性技術 |
| 🟤 實踐 | 工程、工具與生產環境就緒 |
| 書籍 | 等級 | 適合對象 |
|---|---|---|
| Rust for C/C++ Programmers | 🟢 橋接 | 移動語意(Move Semantics)、RAII、FFI、嵌入式、no_std |
| Rust for C# Programmers | 🟢 橋接 | Swift / C# / Java → 所有權(Ownership)與型別系統 |
| Rust for Python Programmers | 🟢 橋接 | 動態 → 靜態型別,無 GIL 的並行 |
| Async Rust | 🔵 深入探討 | Tokio、串流(Streams)、取消安全性(Cancellation Safety) |
| Rust Patterns | 🟡 進階 | Pin、配置器(Allocators)、無鎖結構(Lock-free Structures)、unsafe |
| Type-Driven Correctness | 🟣 專家 | 型別狀態(Type-state)、幻影型別(Phantom Types)、能力權杖(Capability Tokens) |
| Rust Engineering Practices | 🟤 實踐 | 建置腳本(Build Scripts)、交叉編譯(Cross-compilation)、CI/CD、Miri |
每本書有 15–16 章,包含 Mermaid 圖表、可編輯的 Rust Playground、練習題和全文搜尋。
提示: 你可以直接在 GitHub 上閱讀 markdown 原始碼,或在 GitHub Pages 網站 瀏覽帶有側邊欄導覽和搜尋功能的渲染版本。
本機服務: 若想獲得最佳閱讀體驗(章節間鍵盤導覽、即時搜尋、離線存取),請複製儲存庫並執行:
# 如果尚未安裝 Rust,請透過 rustup 安裝: # https://rustup.rs/ cargo install mdbook@0.4.52 mdbook-mermaid@0.14.0 cargo xtask serve # 建置所有書籍並啟動本機伺服器
在本機建置、服務和編輯書籍
如果尚未安裝,請先安裝 Rust(透過 rustup),然後:
cargo install mdbook@0.4.52 mdbook-mermaid@0.14.0cargo xtask build # 將所有書籍建置到 site/(本機預覽)
cargo xtask serve # 建置並在 http://localhost:3000 提供服務
cargo xtask deploy # 將所有書籍建置到 docs/(供 GitHub Pages 使用)
cargo xtask clean # 移除 site/ 和 docs/若要建置或服務單一書籍:
cd c-cpp-book && mdbook serve --open # http://localhost:3000網站會在推送到 master 分支時,透過 .github/workflows/pages.yml 自動部署到 GitHub Pages。無需手動操作。