一个全面、系统、实用的 Rust 编程学习项目,采用 Rust 2021/2024 最佳实践,涵盖从基础语法到高级模式的完整学习路径。
- 渐进式学习路径 - 从基础概念到高级模式
- 11,384+ 行代码示例 - 每个模块都有详细的实现
- 现代 Rust 实践 - 采用最新的 2021/2024 特性
- 丰富的生态库 - Tokio、Serde、Clap 等实际应用
- 完整的测试覆盖 - 单元测试、属性测试、基准测试
- 详细的文档注释 - 代码即文档
- Rust 1.70+ (安装 Rust)
- Cargo(Rust 包管理器,通常随 Rust 一起安装)
# 克隆项目
git clone https://github.com/Y-ZD-heheka/rust_learn.git
cd rust_learn
# 构建项目
cargo build
# 运行所有示例
cargo run
# 运行特定模块
cargo run -- basics
cargo run -- ownership
cargo run -- concurrency
# 查看所有可用模块
cargo run -- --help
# 运行测试
cargo test
# 生成文档
cargo doc --opensrc/
main.rs # 程序入口,模块选择器
lib.rs # 库根文件
basics.rs # 基础语法和核心概念
ownership.rs # 所有权、借用、生命周期
types.rs # 类型系统、结构体、枚举
error_handling.rs # 错误处理、Result 类型
concurrency.rs # 并发编程、异步处理
modules.rs # 模块系统、包管理
macros.rs # 宏系统、元编程
advanced_types.rs # 高级类型系统
testing.rs # 测试策略、基准测试
ecosystem.rs # 生态系统、工具链
advanced_patterns.rs # 设计模式(Builder、Strategy 等)
popular_libraries.rs # 常用库示例(Serde、Clap 等)
best_practices.rs # 最佳实践和编码规范
database.rs # 数据库集成(暂时禁用)
pitfalls.rs # 常见陷阱和解决方案
security.rs # 安全编程实践
- 变量声明与绑定
- 基本数据类型
- 函数定义与调用
- 控制流(if/match/loop)
- 算法实现(快速排序、动态规划、Dijkstra)
- 代码行数:682 行
cargo run -- basics- 所有权基础
- 借用与引用
- 可变性规则
- 生命周期概念
- 内存安全保证
- 代码行数:800 行
cargo run -- ownership- 原始类型
- 复合类型(结构体、枚举、元组)
- Trait 定义与实现
- 泛型编程
- 关联类型
- 代码行数:1,203 行
cargo run -- types- Result 类型
- panic! 宏
- 自定义错误类型
- 错误恢复策略
- 最佳实践
- 代码行数:999 行
cargo run -- error_handling- 线程基础
- 消息传递
- 共享状态(Arc、Mutex)
- Async/await(Tokio)
- 异步流处理
- 代码行数:452 行
cargo run -- concurrency- 模块定义与组织
- 包和 crate 管理
- 可见性与私有性
- 模块最佳实践
- 代码行数:738 行
cargo run -- modules- 声明式宏
- 宏规则与模式匹配
- 递归宏
- DSL 构建
- 代码行数:951 行
cargo run -- macros- 类型级编程
- 幻影类型
- 类型状态
- Newtype 模式
- 类型设计模式
- 代码行数:991 行
cargo run -- advanced_types- Builder 模式 - 灵活的对象构建
- Strategy 模式 - 算法族选择
- Observer 模式 - 事件与通知
- State 模式 - 状态机实现
- Factory 模式 - 对象创建
- Decorator 模式 - 函数组合
- 代码行数:650 行
cargo run -- advanced_patterns- 单元测试
- 集成测试
- 属性测试
- 基准测试
- 测试组织
- 代码行数:1,158 行
cargo run -- testing
cargo test- Cargo 工具链
- crates.io 生态系统
- 推荐库
- 开发工具
- 最佳实践
- 代码行数:315 行
cargo run -- ecosystem- Serde - 序列化/反序列化
- Clap - 命令行参数解析
- Reqwest - HTTP 客户端
- Anyhow - 错误处理
- Thiserror - 自定义错误
- Tracing - 日志与追踪
- Chrono - 日期/时间处理
- UUID - 标识符生成
- 代码行数:526 行
cargo run -- popular_libraries- 代码组织与结构
- 命名规范
- 文档标准
- 性能优化技巧
- 惯用 Rust 模式
- 代码审查指南
- 代码行数:605 行
cargo run -- best_practices- SQLx 使用示例
- Diesel ORM 示例
- 连接池
- 事务处理
- 迁移管理
- 代码行数:489 行(暂时禁用)
# 注意:此模块暂时禁用
# cargo run -- database- 所有权陷阱
- 借用检查器问题
- 性能反模式
- 并发错误
- 内存泄漏模式
- 解决方案与变通方法
- 代码行数:484 行
cargo run -- pitfalls- 输入验证
- 安全错误处理
- 加密操作
- 内存安全注意事项
- 安全最佳实践
- 常见漏洞
- 代码行数:341 行
cargo run -- security如果你是 Rust 新手,按以下顺序学习:
basics.rs- 了解基础语法和变量ownership.rs- 掌握所有权(Rust 核心概念)types.rs- 学习类型系统error_handling.rs- 理解错误处理
预计时间:2-3 周
打好基础后,继续学习:
5. concurrency.rs - 并发编程
6. modules.rs - 代码组织
7. macros.rs - 元编程
8. testing.rs - 测试策略
9. advanced_patterns.rs - 设计模式
预计时间:3-4 周
提升实战能力:
10. popular_libraries.rs - 生态库应用
11. ecosystem.rs - 工具链掌握
12. advanced_types.rs - 深入类型系统
13. best_practices.rs - 最佳实践与规范
14. security.rs - 安全编程
15. pitfalls.rs - 常见陷阱与解决方案
16. database.rs - 数据库集成
预计时间:2-3 周
# 异步运行时
tokio = "1.48.0"
futures = "0.3.30"
# 数据处理
serde = "1.0.228"
serde_json = "1.0.145"
# CLI
clap = "4.5.51"
# HTTP 客户端
reqwest = "0.12.24"
# 错误处理
anyhow = "1.0.100"
thiserror = "2.0.17"
# 日志与追踪
tracing = "0.1.41"
tracing-subscriber = "0.3.20"
# 日期/时间
chrono = "0.4.42"
# 标识符
uuid = "1.18.1"# 查看帮助
cargo run -- --help
# 运行 basics 模块
cargo run -- basics
# 运行 ownership 模块
cargo run -- ownership
# 运行所有示例(默认)
cargo run# 运行所有测试
cargo test
# 运行特定测试
cargo test test_add_two
# 运行测试并显示输出
cargo test -- --nocapture
# 单线程测试执行
cargo test -- --test-threads=1# 生成文档并在浏览器中打开
cargo doc --open
# 生成包含私有项的文档
cargo doc --document-private-items --open# 编译优化版本(release 模式)
cargo build --release
# 运行 release 版本
cargo run --release -- basics
# 基准测试
cargo test --release -- --nocapture benchmark本项目包含全面的测试:
# 单元测试
cargo test test_
# 集成测试
cargo test --test integration_test
# 所有测试
cargo test --all测试统计:
- 单元测试:80+ 个
- 属性测试:15+ 个
- 集成测试:8+ 个
- 基准测试:10+ 个
- The Rust Book - Rust 官方书籍
- Rust By Example - 示例集合
- Rust Reference - 语言参考
- course - 墙裂推荐的中文学习教程
- Rustlings - 交互式教程
- Exercism Rust Track - 编程练习
- Rust Design Patterns - 设计指南
- The Rust Community
- r/rust - Rust 社区
- Rust Forum - 官方论坛
欢迎贡献!如果你有改进建议:
- Fork 本项目
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
- 基础语法和核心概念模块
- 所有权和生命周期系统
- 类型系统和 trait
- 错误处理模式
- 并发编程
- 模块系统
- 宏系统和元编程
- 高级类型系统
- 设计模式(Builder、Strategy、Observer 等)
- 测试策略
- 生态系统工具
- 常用库示例
- 最佳实践模块
- 常见陷阱模块
- 安全编程模块
- 启用数据库模块(SQLx、Diesel)
- 添加更多设计模式示例
- Web 框架集成(Axum、Actix)
- 性能优化深入探讨
- 编译器优化技术
- FFI(外部函数接口)示例
本项目采用 MIT 许可证。详见 LICENSE 文件。
Y-ZD-heheka
- GitHub: @Y-ZD-heheka
- 项目链接: rust_learn
A: 如果你是完全的新手,从 basics.rs 开始,然后按照学习路径建议进行学习。
A: 本项目主要用于教育目的。代码质量较高,但在生产环境使用前应进行充分测试。
A: 可以通过 cargo run -- <模块名> 运行特定模块,或编辑 main.rs 中的 MODULE_REGISTRY。
A: 项目会定期维护和改进,跟随 Rust 的发展而更新。
A: 可以!MIT 许可证允许商业使用,但需要包含许可证文本。
学习愉快!