命令行工具
rust-lang/rustlings avatar
rust-lang/rustlings

rustlings:用一组小练习把 Rust 语法练成肌肉记忆

Rustlings 提供一系列动手小练习,帮助你学会读写 Rust 代码,官方建议与 Rust 官方教程书同步进行。

64,154 个 Star11,254 个 ForkRustMIT

秒懂

它是什么?
rustlings 是 Rust 官方团队维护的练习集,通过 100 多个可运行、可验证的小程序,让学习者在阅读和修改代码中掌握 Rust 的核心语法。它适合配合官方书籍使用,但对纯零基础者可能不够友好。
适合谁用?
rustlings 适合已经读过 Rust 书的前几章、但觉得光看不练记不住的人。它不适合完全没写过代码的零基础者,也不适合想系统学习所有权和生命周期理论的读者,因为练习本身不解释原理。
能商用吗?
可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 17 天前。
用什么语言写的?
主要是 Rust(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

一个把阅读和修改变成练习的仓库

rustlings 是 rust-lang 组织下的一个练习仓库,README 里只有一句话:小练习让你习惯阅读和编写 Rust 代码。它被明确推荐为官方 Rust 书的平行读物。这个定位很关键,它不是一个教程,也不是一个挑战平台,而是一组需要你动手改代码的文件。每个练习都是一个独立的 Rust 程序,里面有故意留下的错误或未完成的部分。你的任务是读懂代码,修复它,让程序通过编译。这种模式把学习重心从看讲解转移到改代码,对很多程序员来说,比反复读语法规则更有效。

练习的运行机制:编译错误就是你的老师

根据仓库结构和 README 的描述,rustlings 的核心是一个命令行工具,它扫描 exercises 目录下的练习文件,逐个尝试编译。每个练习文件都有对应的测试或预期输出,只有当你修改后的代码能通过编译并满足预期,工具才会标记为完成。这个机制意味着你得到的反馈直接来自 rustc 编译器,而不是某个人写的解释。错误信息是真实的,你被迫去读编译器告诉你哪里不对。这种反馈循环非常直接,改一行,运行,看错误,再改。与看视频或读文章不同,你无法跳过不懂的部分,因为编译不通过就卡住了。

从克隆到第一个练习:真实命令与配置

要开始使用 rustlings,你需要先安装 Rust 工具链,这通常通过 rustup 完成。然后克隆仓库,命令是 git clone https://github.com/rust-lang/rustlings.git。进入目录后,根据 README 的指引,运行 cargo install --path . 来安装 rustlings 命令,或者直接使用 cargo run 启动。启动后,工具会提示你进入第一个练习,通常是 variables。你编辑对应的 .rs 文件,然后运行 rustlings watch,它会监听文件变化,自动重新编译并给出反馈。每个练习的目录结构是固定的,包含 exercises/ 下的多个子目录,按主题分组,比如 variables、functions、if、move_semantics 等。配置方面,你不需要修改任何配置文件,所有行为都由工具内置逻辑控制。

一个真实的局限:它不解释为什么

rustlings 最大的局限是它不提供概念讲解。每个练习只有一个文件名和一句注释,比如 // Make this compile! 或者 // This exercise compiles successfully. 但没有解释为什么所有权规则是这样的。如果你不理解借用和生命周期的原理,你可能会通过试错通过练习,但心里仍然糊涂。这种试错式学习在语法层面有效,但在概念层面可能形成错误的心智模型。另一个问题是,练习的难度跳跃不均匀,有些题非常基础,有些题突然涉及复杂的 trait 约束。对于完全没有编程经验的新手,rustlings 可能会让人感到挫败,因为错误信息里的术语本身就很难懂。它更适合那些已经写过其他语言、只需要熟悉 Rust 语法的人。

与官方书的配合:并行而非替代

README 明确建议将 rustlings 与官方 Rust 书并行使用。这意味着正确的用法不是先做完所有练习再读书,而是每读一章,就做对应的练习。官方书的章节顺序与 rustlings 的练习目录大致对应,比如第一章讲变量,练习里就有 variables 目录。这种配合的价值在于,书提供理论,练习提供验证。但要注意,rustlings 不是书的配套习题集,它的练习设计有自己的顺序和风格。有些练习覆盖了书里没细讲的内容,比如宏和模式匹配。所以你需要自己判断哪些练习对应哪些章节,而不是机械地按顺序做。如果你跳过书直接做练习,遇到所有权相关的问题时,可能会卡很久。

维护状态与升级成本:一个活跃但缓慢的项目

从仓库信息看,rustlings 的最近一次发布是 2025 年 8 月的 6.5.0 版本,上一个版本是 2024 年 11 月的 6.4.0,再往前是 2024 年 8 月的 6.3.0。这意味着项目大约每三到四个月发布一个新版本,节奏不算快,但也不算停滞。每次升级可能会调整练习内容或工具行为,但作为学习者,你不需要频繁升级,因为练习文件是独立的,只要你的 Rust 工具链能编译,旧版本也能用。不过,如果你使用 rustlings watch,升级后可能需要重新编译工具本身,耗时几分钟。许可证是 MIT,这意味着你可以自由使用、修改甚至分发练习内容,没有商业限制。但要注意,练习代码本身是教学材料,如果你把它用于自己的课程,需要保留版权声明。

一个真正的替代方案:直接写小项目

与 rustlings 形成鲜明对比的是直接动手写一个命令行小工具,比如一个文件重命名器或一个 JSON 解析器。这种方法的优势在于,你会遇到真实的问题,比如错误处理、生命周期、模块组织,而不是人为设计的练习。但它的缺点也很明显,没有即时反馈,没有进度跟踪,你可能在错误的方向上花很多时间。rustlings 则相反,它提供了结构化的路径和即时的编译反馈,但问题都是孤立的,不会教你如何组合这些语法。如果你的目标是快速熟悉语法,rustlings 更高效;如果你的目标是学会设计一个完整的程序,那么小项目更接近现实。两者并不冲突,你可以先用 rustlings 打基础,再转向小项目。但如果你只有有限的时间,而且已经有编程经验,直接做小项目可能收获更大。

编辑结论

rustlings 适合已经读过 Rust 书的前几章、但觉得光看不练记不住的人。它不适合完全没写过代码的零基础者,也不适合想系统学习所有权和生命周期理论的读者,因为练习本身不解释原理。建议先安装 Rust 工具链,然后克隆仓库,运行 rustlings watch 从 variables 练习开始。在开始前,先确认你的编辑器支持 Rust 语法高亮,否则阅读错误信息会非常吃力。如果你需要更系统的讲解,请转回官方书,把 rustlings 当作每章之后的检验工具。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记