推荐 rust 练手的小项目
当然!Rust 是个非常适合写高性能、类型安全、并发友好的项目的语言,以下是一些适合练手的 Rust 小项目推荐,按难度和方向分类:
🚀 初学者项目(熟悉语法 & 基本结构)
1. 命令行工具
- To-Do 管理器:输入
todo add "写报告"、todo list、todo done 1。 - 词频统计工具:统计一个文本文件中每个词出现的频率。
- 随机密码生成器:支持指定长度、复杂度(特殊字符/数字/大写等)。
2. 文件处理工具
- CSV 转 JSON:读入 CSV 文件,输出 JSON。
- 小型日志分析工具:分析 Nginx/Apache 日志,统计 IP 访问量。
3. 小游戏
- 猜数字游戏:随机生成一个 1~100 的数,提示“大了/小了”。
- 井字棋(Tic Tac Toe):命令行实现。
🧠 中级项目(用上 crates、多线程、异步等)
1. 简易 HTTP 服务
- 用 Axum / [Actix-web] 写个 RESTful 接口,比如博客 API 或留言板。
2. 代理工具
- 一个简单的 HTTP 或 SOCKS5 代理(可以加日志、转发、鉴权)。
- 类似
proxychains的小工具,学习网络 IO 和 TCP。
3. 数据库封装
- 使用 SQLite(配合
rusqlite或sqlx)写一个简单的个人账本或笔记应用。
4. 并发爬虫
- 使用
reqwest + tokio + scraper实现并发抓取网页标题/关键词。 - 可以拓展为监控网页变化的工具。
⚙️ 高级项目(系统级编程、异步/并发深入)
1. 任务队列 / Job Worker
- 简单的任务队列系统,支持 Redis 做消息中转,用
tokio实现 worker 并发处理。
2. 文件同步工具
- 类似 rsync,比较目录差异,拷贝变化的文件。
- 熟悉文件 IO、哈希、线程池。
3. 简易向量数据库
- 写一个嵌入式的向量搜索服务(用 HNSW 或暴力搜索),配合 Web 接口提供相似搜索。
🧪 项目生成器模板推荐
你可以用 cargo generate 来初始化一些模板项目:
cargo install cargo-generate
cargo generate --git https://github.com/cargo-generate/cargo-generate.git
🧰 一些常用 Crate 推荐
- 网络请求:
reqwest - Web 框架:
axum,actix-web - 数据库:
sqlx,rusqlite - 命令行:
clap,structopt - 异步:
tokio,async-std - 序列化:
serde,serde_json - 测试:
proptest,quickcheck
如果你能告诉我你感兴趣的方向,比如 Web、系统工具、命令行、网络编程、数据库,我可以给你定制一个具体项目💡。要不要试试?