Hệ Sinh Thái Rust
Hệ sinh thái của Rust bao gồm một số lượng đáng kể các công cụ, trong đó nổi bật nhất như là:
-
rustc
: trình biên dịch Rust, thứ mà sẽ “dịch” các file.rs
sang dạng nhị phân hoặc các formats bậc trung khác. -
cargo
: trình quản lý các gói phụ thuộc và công cụ xây dựng cho Rust. Cargo sẽ tải các gói phụ thuộc, thường được lưu trữ trên https://crates.io, rồi đưa chúng chorustc
khi bạn xây dựng dự án. Cargo còn có các trình chạy kiểm thử được cài sẵn phục vụ cho việc thực thi các đơn vị kiểm thử. -
rustup
: bộ công cụ cài đặt và cập nhật cho Rust. Công cụ này được sử dụng để cài đặt và cập nhậtrustc
vàcargo
khi các phiên bản mới của Rust được phát hành. Thêm vào đó,rustup
còn có thể tải các tài liệu cho thư viện tiêu chuẩn. Bạn có thể cài đặt nhiều phiên bản Rust cùng lúc vàrustup
sẽ cho bạn chuyển đổi các phiên bản với nhau khi cần.
Speaker Notes
Các điểm chính:
-
Rust có một lịch phát hành phiên bản mới dày đặc với một phiên bản mới mỗi sáu tuần. Các phiên bản mới bảo toàn tính tương thích với các phiên bản cũ — cùng với đó chúng kích hoạt thêm các chức năng mới.
-
Có tổng cộng ba kênh phát hành: “stable”, “beta”, và “nightly”.
-
Các tính năng mới dang được thử nghiệm trên “nightly”, còn “beta” sẽ trở thành “stable” sau mỗi sáu tuần.
-
Các gói phụ thuộc cũng có thể được phân giải từ các hệ thống đăng ký thay thế, git, các thư mục, v.v…
-
Rust còn có nhiều phiên bản lớn: Rust 2021 là bản hiện tại, Rust 2018, và Rust 2015.
-
Các phiên bản lớn được cho phép thực hiện các thay đổi không tương thích đối với ngôn ngữ.
-
Để phòng trừ phá vỡ cấu trúc mã, các phiên bản lớn sẽ được chọn cho crate của bạn thông qua file
Cargo.toml
. -
Nhằm tránh hệ sinh thái bị chia nhỏ ra, trình biên dịch Rust có thể trộn lẫn các đoạn mã được viết dưới các phiên bản lớn khác nhau.
-
Hãy đề cập với người học rằng việc sử dụng trình biên dịch trực tiếp mà không thông qua
cargo
là việc rất hiếm (hầu hết người dùng không bao giờ làm như vậy). -
Nói không ngoa bản thân Cargo là một công cụ cự kỳ mạnh mẽ và toàn diện. Nó có khả năng bao gồm nhưng không giới hạn tới nhiều tính năng mở rộng sau:
- Cấu trúc dự án/bộ phần mềm.
- Workspaces.
- Các Dev Dependencies và trình quản lý/bộ nhớ đệm cho Runtime Dependency.
- Build scripting.
- Cài đặt trên toàn môi trường.
- Nó còn có khả năng mở rộng được với các lệnh con dưới dạng plugins (như là cargo clippy).
-
Tham khảo thêm tại The Cargo Book.
-