- 1. Introduction
- Bắt đầu
- 2. Cài đặt Rust
- 3. Rust Playground
- 4. Project đầu tiên
- Cơ bản
- 5. Variables
- 5.1. mut
- 5.2. uninitialized variable
- 6. Closure
- 7. Cargo
- 8. Packages và Crates
- 8.1. Package layout
- 8.2. Crate
- 8.3. use crate
- 8.3.1. use self, use super
- 8.3.2. pub use
- 8.4. Preludes
- 9. Ownership
- 10. Struct
- 11. Trait
- 11.1. Khai báo Trait
- 11.2. Implement Trait cho một Type
- 11.3. Default Implementations
- 11.4. Traits as Parameters
- 11.5. Trait Bound
- 11.6. Multiple Trait Bound
- 11.7. where Clauses
- 11.8. Returning Types that Implement Traits
- 11.9. Using Trait Bounds to Conditionally Implement Methods
- 11.10. Blanket implementations
- 11.11. Trait Inheritance
- 11.12. Supertraits
- 11.13. Auto Trait
- 11.14. Copy, Clone
- 11.15. String và &str
- 11.16. FromStr
- 11.17. Display
- 12. Enum
- 12.1. match Enum
- 12.2. Mang Variants ra ngoài scope của Enum
- 12.3. impl Enum
- 12.4. Option<T>
- 12.4.1. unwrap()
- 12.4.2. expect()
- 12.4.3. unwrap_or_default()
- 12.4.4. if let Some(x) = x
- 12.5. Result<T, E>
- 12.5.1. Result -> Option
- 12.5.2. Toán tử ?
- 13. Generics
- 13.1. Generic Functions
- 13.2. Generic Struct
- 13.3. Generic Enum
- 13.4. Generic Implementation
- 13.5. Generic Trait
- 13.6. Bounds
- 13.7. where
- 14. Vec
- 14.1. Iter
- 14.2. Sử dụng Enum để chứa nhiều loại dữ liệu
- 15. Code comment
- 15.1. Regular comments
- 15.2. Doc comments
- 16. Turbofish ::<>
- 17. macros!
- 17.1. Khác nhau giữa Macros và Functions
- 17.2. Standard Macros
- 17.3. println!
- 17.4. format!
- 17.5. todo!
- 17.6. macro_rules!
- 18. match
- 18.1. Matching giá trị
- 18.2. Matching Named Variables
- 18.3. Matching Multiple
- 19. #[attributes]
- 20. Xử lý lỗi
- 20.1. panic
- 20.2. Option
- 20.3. Result
- 20.3.1. Result map
- 20.3.2. Result alias
- 20.4. Boxing error
- 20.5. Custom error
- 21. Viết Tests
- 21.1. Tổ chức Tests
- 21.1.1. Unit Tests
- 21.1.2. Integration Tests
- 21.1.3. Doc Tests
- 21.2. Xung đột biến môi trường
- 22. Viết Docs
- 22.1. Sử dụng README.md làm crate document
- Nâng cao
- 23. Smart Pointers
- 23.1. Box<T>
- 23.2. Rc<T>, Reference Counted
- 23.3. Cow
- 23.4. Ref
- 23.5. RefMut
- 24. Saturating<T>
- Design patterns
- 25. Behavioural Patterns
- 25.1. Strategy Pattern
- 25.2. Command Pattern
- 26. Creational Patterns
- 26.1. Builder Pattern
- 27. Structural Patterns
- 27.1. Prefer Small Crates
- Crates hay dùng
- 28. regex
- 29. chrono
- 30. async_trait
- 31. lazy_static
- 32. serde
- 32.1. serde_json
- 32.2. serde_toml
- 32.3. serde_csv
- 32.4. serde_yaml
- 33. tokio
- 34. actix-web
- 35. anyhow
- 36. clap
- 37. log
- 37.1. env_logger
- 38. config
- 39. indoc
- 40. rayon
- 41. polars
- Data Engineering
- 42. Xử lý và phân tích dữ liệu
- 43. High-performance data pipeline
- 44. Building scalable data-driven applications using Rust
- 45. Rust as an alternative to Python for data engineering tasks
- AI và Large Language Models (LLM)
- 46. Rust và LLM Overview
- 47. Rig - LLM Application Framework
- 48. llm - Unified LLM Interface
- 49. Candle - Minimalist ML Framework
- 50. Building AI Agents và Workflows
- 51. Recent Updates 2025
- Rust Idioms
- 52. Functional programming
- 53. Use borrowed types for arguments
- 54. Concatenating strings with format!
- 55. Constructor
- 55.1. The Default Trait
- 56. Finalisation in destructors
- 57. Temporary mutability
- 58. Aim For Immutability in Rust
- 59. mem::replace and mem::take
- 60. Privacy for extensibility
- 61. Iterating over Option
- 62. Pass variables to closure
- 63. let-else pattern
- 64. Newtype Pattern
- 65. RAII Guards
- 66. Zero-Cost Abstractions
- 67. Typestate Pattern
- 68. Error Handling Patterns