1. Ngôn ngữ lập trình Rust
  2. Lời nói đầu
  3. Giới thiệu
  4. Bắt đầu
    1. Cài đặt
    2. Xin chào, Thế giới!
    3. Xin chào, Cargo!
  5. Lập trình trò chơi đoán số
  6. Các khái niệm lập trình chung
    1. Biến và Tính khả biến
    2. Kiểu dữ liệu
    3. Hàm
    4. Bình luận
    5. Luồng điều khiển
  7. Hiểu về Quyền sở hữu
    1. Quyền sở hữu là gì?
    2. Tham chiếu và Mượn
    3. Kiểu Slice
  8. Sử dụng Structs để cấu trúc dữ liệu liên quan
    1. Định nghĩa và Khởi tạo Structs
    2. Một chương trình mẫu sử dụng Structs
    3. Cú pháp phương thức
  9. Enums và Khớp mẫu
    1. Định nghĩa Enum
    2. Cấu trúc luồng điều khiển match
    3. Luồng điều khiển ngắn gọn với if let và let else
  10. Quản lý dự án đang phát triển với Packages, Crates và Modules
    1. Packages và Crates
    2. Định nghĩa Modules để kiểm soát phạm vi và quyền truy cập
    3. Đường dẫn để tham chiếu đến các phần tử trong cây Module
    4. Đưa các đường dẫn vào phạm vi với từ khóa use
    5. Tách các Module thành các tệp khác nhau
  11. Các Collection thông dụng
    1. Lưu trữ danh sách giá trị với Vectors
    2. Lưu trữ văn bản mã hóa UTF-8 với Strings
    3. Lưu trữ khóa với giá trị liên kết trong Hash Maps
  12. Xử lý lỗi
    1. Các lỗi không thể khôi phục với panic!
    2. Các lỗi có thể khôi phục với Result
    3. Nên hay không nên dùng panic!
  13. Kiểu Generic, Traits và Lifetimes
    1. Kiểu dữ liệu Generic
    2. Traits: Định nghĩa hành vi dùng chung
    3. Xác thực tham chiếu với Lifetimes
  14. Viết kiểm thử tự động
    1. Cách viết kiểm thử
    2. Kiểm soát cách chạy kiểm thử
    3. Tổ chức kiểm thử
  15. Dự án I/O: Xây dựng chương trình dòng lệnh
    1. Chấp nhận đối số từ dòng lệnh
    2. Đọc tệp
    3. Tái cấu trúc để tăng tính module hóa và xử lý lỗi
    4. Phát triển chức năng thư viện với Phát triển theo hướng kiểm thử
    5. Làm việc với biến môi trường
    6. Ghi thông báo lỗi vào Standard Error thay vì Standard Output
  16. Các đặc điểm của ngôn ngữ hàm: Iterators và Closures
    1. Closures: Hàm ẩn danh có khả năng bắt giữ môi trường
    2. Xử lý một chuỗi các phần tử với Iterators
    3. Cải thiện dự án I/O của chúng ta
    4. So sánh hiệu suất: Vòng lặp và Iterators
  17. Tìm hiểu thêm về Cargo và Crates.io
    1. Tùy chỉnh bản dựng với Release Profiles
    2. Xuất bản một Crate lên Crates.io
    3. Cargo Workspaces
    4. Cài đặt các tệp nhị phân từ Crates.io với cargo install
    5. Mở rộng Cargo với các lệnh tùy chỉnh
  18. Con trỏ thông minh
    1. Sử dụng Box<T> để trỏ đến dữ liệu trên Heap
    2. Coi con trỏ thông minh như tham chiếu thông thường với Deref
    3. Chạy mã khi dọn dẹp với Trait Drop
    4. Rc<T>, con trỏ thông minh đếm tham chiếu
    5. RefCell<T> và mẫu tính khả biến nội tại
    6. Các vòng tham chiếu có thể gây rò rỉ bộ nhớ
  19. Concurrency không sợ hãi
    1. Sử dụng Threads để chạy mã đồng thời
    2. Sử dụng Message Passing để truyền dữ liệu giữa các Threads
    3. Concurrency với trạng thái được chia sẻ
    4. Concurrency có thể mở rộng với các Trait Send và Sync
  20. Cơ bản về lập trình bất đồng bộ: Async, Await, Futures và Streams
    1. Futures và cú pháp Async
    2. Áp dụng Concurrency với Async
    3. Làm việc với bất kỳ số lượng Futures nào
    4. Streams: Futures theo chuỗi
    5. Xem xét kỹ hơn về các Trait cho Async
    6. Futures, Tasks và Threads
  21. Các đặc điểm của lập trình hướng đối tượng trong Rust
    1. Các tính chất của ngôn ngữ hướng đối tượng
    2. Sử dụng Trait Objects cho phép chứa các giá trị của các kiểu khác nhau
    3. Triển khai một mẫu thiết kế hướng đối tượng
  22. Mẫu và Khớp mẫu
    1. Tất cả các nơi mà mẫu có thể được sử dụng
    2. Tính bác bỏ: Liệu một mẫu có thể không khớp
    3. Cú pháp mẫu
  23. Tính năng nâng cao
    1. Rust không an toàn
    2. Traits nâng cao
    3. Kiểu nâng cao
    4. Hàm và Closures nâng cao
    5. Macros
  24. Dự án cuối cùng: Xây dựng một Web Server đa luồng
    1. Xây dựng một Web Server đơn luồng
    2. Chuyển Server đơn luồng thành Server đa luồng
    3. Tắt và dọn dẹp một cách an toàn
  25. Phụ lục
    1. A - Các từ khóa
    2. B - Các toán tử và ký hiệu
    3. C - Các Trait có thể dẫn xuất
    4. D - Các công cụ phát triển hữu ích
    5. E - Các phiên bản
    6. F - Các bản dịch của cuốn sách
    7. G - Cách Rust được tạo ra và "Nightly Rust"