# rust-study **Repository Path**: andnnl/rust-study ## Basic Information - **Project Name**: rust-study - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-19 - **Last Updated**: 2026-01-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Rust 学习教程 这个项目包含了一系列 Rust 编程语言的教程文件,每个文件都详细讲解了 Rust 的一个重要概念。 ## 教程列表 1. [变量和数据类型](src/01_variables_and_data_types.rs) - 介绍 Rust 中的变量声明、可变性、数据类型等基础知识 2. [函数](src/02_functions.rs) - 讲解如何定义和使用函数,包括参数、返回值等 3. [流程控制](src/03_control_flow.rs) - 介绍 if 表达式、循环(loop、while、for)等控制流结构 4. [所有权](src/04_ownership.rs) - Rust 核心概念,包括所有权、借用、生命周期等 5. [结构体](src/05_structs.rs) - 如何定义和使用结构体,以及方法的实现 6. [枚举和模式匹配](src/06_enums_and_pattern_matching.rs) - 枚举的定义和使用,match 表达式和模式匹配 7. [常见集合](src/07_common_collections.rs) - Vector、String、HashMap 等常用集合类型 8. [包和模块](src/08_packages_and_modules.rs) - 模块系统、use 关键字、模块文件结构 9. [错误处理](src/09_error_handling.rs) - panic! 宏、Result 枚举、错误传播等 10. [泛型](src/10_generics.rs) - 泛型数据类型、结构体、枚举和方法中的泛型 11. [Trait](src/11_traits.rs) - 定义共享行为的 Trait,以及如何实现和使用它们 12. [生命周期](src/12_lifetimes.rs) - 生命周期注解、生命周期省略规则、静态生命周期等 13. [线程使用](src/13_threads.rs) - 多线程编程,线程创建、同步和通信 14. [Async 和 Await](src/14_async_await.rs) - 异步编程,async/await 语法和 tokio 运行时 15. [线程池设计](src/15_thread_pool.rs) - 线程池的实现,任务队列,限制并发线程数 16. [泛型参数处理](src/16_args_test.rs) - 使用泛型和 AsRef trait 处理多种参数类型 17. [Rayon 并行计算](src/17_rayon.rs) - 使用 Rayon 库进行并行计算和线程池操作 18. [Rayon-Core 核心功能](src/18_rayon_core.rs) - Rayon-Core库的所有核心功能示例 19. [Tokio 异步运行时](src/19_tokio.rs) - Tokio 异步运行时的详细用法示例 20. [Embassy 异步嵌入式框架](src/20_embassy.rs) - Embassy 异步嵌入式框架的概念和使用 21. [多线程服务器](src/21_multithreaded_server.rs) - 基于线程池的多线程Web服务器实现 22. [Tokio 异步服务器](src/21_tokio_server.rs) - 使用Tokio异步运行时的Web服务器实现 23. [文件监听器](src/22_file_watcher.rs) - 使用notify库实现文件系统事件监听 24. [迭代器应用](src/23_iterators.rs) - Rust迭代器的各种应用和性能分析 25. [迭代器组合拳](src/24_iterator_combos.rs) - Rust迭代器的高级组合技巧 26. [生命周期约束](src/25_lifetimes_constraints.rs) - Rust生命周期约束和多个生命周期参数的使用 27. [高级Trait与泛型技巧](src/26_advanced_traits_generics.rs) - 5个让同事"高攀不起"的Trait与泛型骚操作 28. [Axum高性能Web服务器](src/27_axum_web_server.rs) - 使用Axum框架构建具备日志、认证、限流等功能的Web服务器 ## 如何运行教程 每个教程都是一个独立的 Rust 程序,可以通过以下命令运行: ```bash # 使用数字编号运行 cargo run --bin 01_variables_and_data_types cargo run --bin 02_functions cargo run --bin 03_control_flow cargo run --bin 04_ownership cargo run --bin 05_structs cargo run --bin 06_enums_and_pattern_matching cargo run --bin 07_common_collections cargo run --bin 08_packages_and_modules cargo run --bin 09_error_handling cargo run --bin 10_generics cargo run --bin 11_traits cargo run --bin 12_lifetimes cargo run --bin 13_threads cargo run --bin 14_async_await cargo run --bin 15_thread_pool cargo run --bin 16_args_test cargo run --bin 17_rayon cargo run --bin 18_rayon_core cargo run --bin 19_tokio cargo run --bin 20_embassy cargo run --bin 21_multithreaded_server cargo run --bin 21_tokio_server cargo run --bin 22_file_watcher cargo run --bin 23_iterators cargo run --bin 24_iterator_combos cargo run --bin 25_lifetimes_constraints cargo run --bin 26_advanced_traits_generics cargo run --bin 27_axum_web_server ``` 或者使用完整的名称: ```bash cargo run --bin variables_and_data_types cargo run --bin functions cargo run --bin control_flow cargo run --bin ownership cargo run --bin structs cargo run --bin enums_and_pattern_matching cargo run --bin common_collections cargo run --bin packages_and_modules cargo run --bin error_handling cargo run --bin generics cargo run --bin traits cargo run --bin lifetimes cargo run --bin threads cargo run --bin async_await cargo run --bin thread_pool cargo run --bin args_test cargo run --bin rayon cargo run --bin rayon_core cargo run --bin tokio cargo run --bin embassy cargo run --bin multithreaded_server cargo run --bin tokio_server cargo run --bin file_watcher cargo run --bin iterators cargo run --bin iterator_combos cargo run --bin lifetimes_constraints cargo run --bin advanced_traits_generics cargo run --bin axum_web_server ``` ## 如何运行测试 ### 单元测试 ```bash # 运行Axum Web服务器的单元测试 cargo test --bin 27_axum_web_server ``` ### 集成测试 ```bash # 运行独立的测试文件 cargo test --test axum_web_server_tests # 运行集成测试 cargo test --test axum_web_server_integration_tests ``` ### 使用Python脚本进行集成测试 ```bash # 启动服务器并运行测试 ./run_tests.bat ``` 或者手动运行: 1. 在一个终端中启动服务器: ```bash cargo run --bin 27_axum_web_server ``` 2. 在另一个终端中运行Python测试脚本: ```bash python test_server.py ``` ## 学习建议 1. 按顺序学习这些教程,因为后面的教程会依赖前面的概念 2. 阅读代码并尝试修改,观察结果的变化 3. 参考每个文件中的注释,它们提供了详细的解释 4. 在 Rust Playground (https://play.rust-lang.org/) 上尝试代码 5. 对于Web服务器教程,可以使用curl或Postman等工具测试API端点 ## 更多资源 - [Rust 程序设计语言 简体中文版](https://kaisery.github.io/trpl-zh-cn/) - [The Rust Programming Language Book](https://doc.rust-lang.org/book/) - [Rust by Example](https://doc.rust-lang.org/rust-by-example/) - [Rust Standard Library Documentation](https://doc.rust-lang.org/std/) - [Axum Documentation](https://docs.rs/axum) 祝您学习 Rust 愉快!