如何从小白变成rust糕手
参考:https://github.com/rust-unofficial/awesome-rust
& talk with gpt~
Part-1
入门与练习(必读 / 必做)
- The Rust Programming Language(官方书)
- 仓库:https://github.com/rust-lang/book
- 难度:入门 → 中级
- 学习重点:所有权、借用、生命周期、错误处理、模块与 Cargo
- 开始:按章节阅读并在本地用 cargo 练习示例
- rust-by-example
- 仓库:https://github.com/rust-lang/rust-by-example
- 难度:入门
- 学习重点:大量小示例、语法与常见用法
- rustlings
- 仓库:https://github.com/rust-lang/rustlings
- 难度:入门 → 实操
- 学习重点:手把手练习题,熟悉编译器错误、修复题目
- 开始:git clone 后按 README 运行练习
工具与开发体验
- rust-analyzer(语言服务器)
- 仓库:https://github.com/rust-lang/rust-analyzer
- 难度:中级
- 学习重点:IDE 支持、重构、类型提示(强烈装在 VSCode)
- cargo-edit(管理依赖的 CLI 工具)
- 仓库:https://github.com/killercup/cargo-edit
- 难度:入门
- 学习重点:Cargo 插件写法、实用工具开发
常用库(在项目中会经常用到)
- serde(序列化/反序列化)
- 仓库:https://github.com/serde-rs/serde
- 难度:中级
- 学习重点:derive 宏、serde_json、数据结构与性能
- clap(命令行参数解析)
- 仓库:https://github.com/clap-rs/clap
- 难度:入门 → 中级
- 学习重点:构建 CLI 工具、参数解析、自动生成帮助信息
网络 / 异步 / 后端
- tokio(异步运行时)
- 仓库:https://github.com/tokio-rs/tokio
- 难度:中级 → 高级
- 学习重点:async/await、任务调度、网络编程
- axum(基于 Tokio 的 Web 框架)
- 仓库:https://github.com/tokio-rs/axum
- 难度:中级
- 学习重点:路由、提取器、中间件、构建 Web API
- actix-web(高性能 Web 框架)
- 仓库:https://github.com/actix/actix-web
- 难度:中级
- 学习重点:高性能异步服务、Actor 模式(部分)
高质量实战项目(读源码学工程)
- ripgrep(快速文件搜索)
- 仓库:https://github.com/BurntSushi/ripgrep
- 难度:中级 → 高级
- 学习重点:性能优化、架构、CLI 实现、测试
- fd(替代 find 的工具)
- 仓库:https://github.com/sharkdp/fd
- 难度:中级
- bat(带语法高亮的 cat)
- 仓库:https://github.com/sharkdp/bat
- 难度:中级
- alacritty(GPU 加速终端)
- 仓库:https://github.com/alacritty/alacritty
- 难度:中级 → 高级
- 学习重点:跨平台、性能、系统接口
游戏 / 图形
- bevy(Rust 游戏引擎)
- 仓库:https://github.com/bevyengine/bevy
- 难度:中级 → 高级
- 学习重点:ECS(实体-组件-系统)、渲染、实时系统设计
生态与资源汇总
- awesome-rust(社区维护的资源列表)
- 仓库:https://github.com/rust-unofficial/awesome-rust
- 难度:全级别
- 学习重点:快速找到教程、库和示例项目
如何快速开始
- 安装 rustup + stable toolchain,配置 VSCode + rust-analyzer,装上 rustfmt 和 clippy。
- 选 1 本书(The Rust Book)和 rustlings 每天练习;并同时挑 1 个小项目(例如 CLI)。
- 克隆目标仓库:git clone ;查看 README、examples、tests;运行 cargo run / cargo test。
- 读源码:先读 README → examples → lib/main 小模块 → 运行断点/打印理解逻辑。
- 参与开源:找带 “
good first issue
” 的 issue,从文档、测试或小修复入手。
Part-2
有 C++ 背景、每周能投入 30 小时,并且对 AI 与操作系统都感兴趣~
AI 相关(模型推理、张量库、Rust ML 生态)
-
candle — https://github.com/candle-rs/candle
- 难度:中级 → 高级
- 学习重点:张量实现、内存布局、CPU/GPU 加速、性能优化、Rust 的 unsafe 用法在数值运算中的应用。
- 快速上手:clone、运行 examples(README 有指导),查看 tensor/ops 实现。
- 第一个任务:修复或补充一个 examples 的文档或小测试;或实现一个小的数值运算单元测试。
-
llm (rust-llm) — https://github.com/rust-llm/llm
- 难度:中级
- 学习重点:模型加载、ggml/gguf 后端、tokenizer、推理流水线、后端抽象。
- 快速上手:运行 README 中的 demo,用本地小模型跑推理。
- 第一个任务:增加一个小的 example(如读取不同格式的模型),或修复 docs 中的一个说明错误。
-
rust-bert — https://github.com/guillaume-be/rust-bert
- 难度:中级
- 学习重点:Transformer 模型在 Rust 中的工程实现、pipeline 抽象、模型序列化。
- 快速上手:运行官方 examples(文本分类、生成等)。
- 第一个任务:改善某个 example 的输入输出说明或添加一个小的单元测试。
-
tch-rs (PyTorch bindings) — https://github.com/LaurentMazare/tch-rs
- 难度:中级
- 学习重点:FFI 与 C++/libtorch 交互、内存/张量所有权、绑定层的设计。
- 快速上手:编译并运行 demo(需先安装 libtorch),阅读 bindings 实现。
- 第一个任务:改进 binding 的错误信息或提交一个示例脚本。
-
tract (ONNX 推理引擎,纯 Rust) — https://github.com/sonos/tract
- 难度:中级 → 高级
- 学习重点:图优化、运算子实现、ONNX/TF 导入器、推理性能。
- 快速上手:运行 examples,用小 ONNX 模型测试推理。
- 第一个任务:为某个运算子补充单测或修文档。
系统 / 操作系统 & 虚拟化(低层、内核、嵌入式、VMM)
-
Redox — https://github.com/redox-os/redox
- 难度:高级
- 学习重点:操作系统整体架构、内核接口、用户态/内核态交互、文件系统实现。
- 快速上手:阅读 README、架构文档,运行在虚拟机(README 指引)。
- 第一个任务:修复或改进文档、一个小的用户空间工具 bug 修复。
-
Theseus — https://github.com/theseus-os/Theseus
- 难度:高级(研究/实验性)
- 学习重点:模块化内核设计、资源管理、Rust 在内核空间的安全性与抽象。
- 快速上手:读 architecture 文档,运行 QEMU demo。
- 第一个任务:复现 demo 并提交一个改进 demo 的小 PR(文档或脚本)。
-
Tock — https://github.com/tock/tock
- 难度:中级 → 高级(嵌入式)
- 学习重点:嵌入式内核、驱动模型、低功耗系统、资源隔离。
- 快速上手:跟着 README 在支持的硬件或模拟器上跑示例。
- 第一个任务:改进某个 board 示例或补充 driver 文档。
-
blog_os(操作系统开发教程 + 示例代码) — https://github.com/phil-opp/blog_os
- 难度:入门 → 中级(OS 开发入门)
- 学习重点:从零写内核的步骤、bootloader、内存管理、上下文切换。
- 快速上手:按教程在 QEMU 跑示例并逐章跟着实现。
- 第一个任务:为教程补充中文注释或更新 README 的本地运行步骤(很适合入门贡献)。
-
Firecracker(微虚拟机,AWS) — https://github.com/firecracker-microvm/firecracker
- 难度:高级(工业级)
- 学习重点:VMM、KVM、微虚拟化、安全隔离、高可靠性系统编程。
- 快速上手:用 README 中的脚本运行 demo,读安全设计文档。
- 第一个任务:定位并修复一个小的文档错误或优化 CI 配置(初学者友好 issue 常有)。
-
rust-vmm(组织,总揽多个 VMM 组件) — https://github.com/rust-vmm
- 难度:中级 → 高级(组件化)
- 学习重点:虚拟化相关的低层库(kvm、virtio、vm-memory 等),非常适合系统级贡献。
- 快速上手:挑一个子 repo(vm-memory、kvm-ioctls)clone 并运行 tests。
- 第一个任务:找带 good-first-issue 的子仓库做小修复或测试扩展。
网络 / I/O / 协议(与系统密切相关)
- smoltcp — https://github.com/smoltcp-rs/smoltcp
- 难度:中级
- 学习重点:TCP/IP 协议栈实现、无 std/嵌入式使用、性能与内存使用优化。
- 第一个任务:增加一个小的集成测试或示例。
桥接 / 加速、GPU、系统与 AI 的结合
-
wgpu(gfx-rs) — https://github.com/gfx-rs/wgpu
- 难度:中级 → 高级
- 学习重点:跨平台 GPU API 抽象、compute shader(可用于加速 ML 推理/算子实现)。
- 第一个任务:构建并运行一个 compute shader 示例,或补充文档/示例。
-
tokio(异步运行时) — https://github.com/tokio-rs/tokio
- 难度:中级
- 学习重点:高性能异步设计、任务调度、I/O 多路复用(对系统编程很重要)。
- 第一个任务:修复文档错误或实现一个简单的 example。
学习
-
推荐先序(7–10 周入门路线)
- 1 周:快速掌握 Rust 语言差异(所有权/借用/unsafe);读 The Rust Book(重点:所有权/借用/unsafe/FFI)+ 完成 rustlings 的基础题。
- 2 周:选择一个“系统”练习:blog_os(一步步写内核)或在 Theseus/Redox 中跑 demo,理解内核启动与内存管理。
- 2 周:选择一个“AI”练习:用 tract 或 candle 跑一个 ONNX/小模型,读推理流程与张量实现。
- 2 周:开始读目标仓库源码(Firecracker / rust-vmm 的一个子 repo 或 llm/candle 的某个模块),做小改动并提交 PR(文档、tests、examples)。
- 持续:交替在系统与 AI 项目上做小贡献,逐步尝试性能/unsafe 优化或实现新运算子。
-
第一次 PR 的一般流程(适用于上面任意仓库)
- fork -> clone -> cargo test / README 步骤复现 -> 运行示例。
- 查找 good-first-issue 或 issues 中标注 “help wanted”。
- 做小改(docs/test/example/小 bug fix),本地跑通测试。
- 提交 PR,跟进 CI 报错并更新 PR。
Part-3
选3个仓库~
- rust-llm/llm (AI 推理框架) — https://github.com/rust-llm/llm
- candle-rs/candle (张量/推理) — https://github.com/candle-rs/candle
- rust-vmm/vm-memory (系统/虚拟化 — rust-vmm 组织下的子仓库) — https://github.com/rust-vmm/vm-memory
& do it~