文章
Rust练手项目推荐
下面列出了一些非常适合用来练手、并且活跃在社区里的 Rust 语言开源项目,你可以从中选取感兴趣的,把阅读、改造、测试、提 PR 当作练习:
- Rustlings――Rust 基础练习
- 仓库地址: https://github.com/rust-lang/rustlings
- 特色:交互式代码练习,涵盖所有基础概念(变量、所有权、错误处理、并发等)。
- 练习建议:按顺序完成所有 exercise,碰到不懂的章节可查文档和源码;做完后尝试给某个练习添加一个小测例或改进提示。
- ripgrep――高速文本搜索工具
- 仓库地址: https://github.com/BurntSushi/ripgrep
- 特色:基于 Rust 和 regex 库,速度极快,代码结构清晰。
- 练习建议:阅读
grep核心逻辑,尝试添加一个新的搜索选项(比如-max-depth限制目录深度),并补充单元测试。
- **bat――带语法高亮的 **
cat- 仓库地址: https://github.com/sharkdp/bat
- 特色:在终端里用语法高亮和 Git 差异显示文件,集成 pager。
- 练习建议:为 bat 增加对另一种文件类型的高亮支持(比如某种 DSL),或者改进分页逻辑,提交 PR。
- **fd――用户友好的 **
find- 仓库地址: https://github.com/sharkdp/fd
- 特色:更简洁的命令行界面,默认递归忽略
.gitignore。 - 练习建议:加入对 Windows 特殊路径的支持,或者实现一个模糊匹配模式,写集成测试。
- tokei――代码行数统计工具
- 仓库地址: https://github.com/XAMPPRocky/tokei
- 特色:支持多语言,高性能统计、漂亮的输出。
- 练习建议:为某个不常见语言(如 Raku、Haskell)添加统计支持,并编写对应的测试用例。
- tokio/examples――异步编程示例
- 仓库地址: https://github.com/tokio-rs/tokio/tree/master/tokio/examples
- 特色:官方提供的多种 async/await 用例,包括 TCP、UDP、定时器、channel 等。
- 练习建议:挑一个例子(如 chat server),改造成带有 TLS 的安全版,或者接入一个消息队列。
- actix-web/examples――Web 框架练手
- 仓库地址: https://github.com/actix/examples
- 特色:涵盖 REST API、WebSocket、文件上传、模板渲染等常见场景。
- 练习建议:在 TodoList 示例中加入 JWT 验证或 RBAC 权限控制,并添加性能基准测试。
- clap――命令行参数解析库
- 仓库地址: https://github.com/clap-rs/clap
- 特色:社区最流行的 CLI 库之一,支持 derive、自动生成帮助文档。
- 练习建议:阅读核心解析流程,尝试实现一个新的属性(如子命令别名),并为此编写测试。
- bevy――Rust 游戏引擎
- 仓库地址: https://github.com/bevyengine/bevy
- 特色:数据驱动、ECS 架构、高度模块化。
- 练习建议:跟着官方的 2D 或 3D 示例项目动手做,然后给某个插件添加功能或优化性能。
- Oxidize(Redox OS)――操作系统内核
- 仓库地址: https://github.com/redox-os/redox
- 特色:用 Rust 编写的微内核操作系统,非常前沿。
- 练习建议:从小模块(如文件系统、驱动)入手,阅读文档、运行测试,再尝试改进某个算法。
练习思路#
- 先读后写:挑一个你感兴趣的项目,先从代码结构和核心模块(I/O、并发、网络等)开始阅读;
- 小范围改造:给项目添加一个新特性或修复一个 issue,同时写上对应的单元/集成测试;
- 提交 PR:熟悉社区协作流程,并根据反馈不断迭代;
- 二次开发:Fork 项目、重构部分功能或做插件扩展,练习项目架构设计。 以上项目涵盖了 CLI、文件处理、异步编程、Web 服务、游戏引擎到操作系统内核,既能巩固 Rust 语法,也能深入了解内存管理、并发模型和系统级编程细节。祝你练手愉快!