Công cụ và cài đặt Rust: mọi thứ bạn cần
Khi bắt đầu với Rust, bạn nghe một loạt cái tên mới cùng lúc: rustup, rustc, cargo, clippy, rustfmt, rust-analyzer. Cảm giác như phải có mười công cụ thì mới viết được một dòng code. Tin vui là: chỉ một trình cài đặt đã cho bạn gần như tất cả, và mỗi công cụ có một nhiệm vụ rõ ràng.
Hãy hình dung như một căn bếp. rustup là cửa hàng giao và thay dụng cụ cho bạn. cargo là đầu bếp điều hành mọi thứ. clippy là người thầy thân thiện đứng sau lưng góp ý, còn rustfmt giữ cho mặt bếp luôn gọn gàng. Trang này giải thích từng công cụ, hệ điều hành của bạn cần gì, và một lập trình viên Rust dùng chúng hằng ngày ra sao.
Nếu bạn chưa cài Rust, các bước cài đặt chi tiết và dự án đầu tiên nằm ở bài Bắt đầu với Rust. Những điều cơ bản về cargo (cargo new, cargo add, Cargo.toml) nằm ở bài Cargo và crate. Trang này xây tiếp trên cả hai.
Bức tranh toàn cảnh
Phần tiêu đề “Bức tranh toàn cảnh”Đây là toàn bộ hộp đồ nghề trong một bảng:
| Công cụ | Tác dụng | Có sẵn khi cài rustup? |
|---|---|---|
rustup |
Cài Rust, cập nhật nó và chuyển qua lại giữa các phiên bản | Chính nó là trình cài đặt |
rustc |
Trình biên dịch: biến các file .rs của bạn thành chương trình |
Có |
cargo |
Build, chạy, test và thêm crate. Bạn dùng nó cho gần như mọi việc | Có |
rustup doc |
Mở tài liệu thư viện chuẩn và cuốn Rust Book ngoại tuyến trong trình duyệt | Có (profile mặc định) |
clippy |
Một linter: chỉ ra lỗi và những cách viết code đơn giản hơn | Có (profile mặc định) |
rustfmt |
Một công cụ định dạng: viết lại code của bạn theo phong cách chuẩn | Có (profile mặc định) |
rust-analyzer |
“Bộ não của editor”: gợi ý code, báo lỗi ngay trong editor, gợi ý kiểu, nhảy tới định nghĩa | Không có sẵn mặc định. Extension VS Code tự mang theo bản riêng |
| Một debugger | Dừng chương trình ở một dòng và xem các biến của nó | Không. Bạn tự cài LLDB hoặc GDB (hoặc một extension editor có kèm debugger) |
Một profile là một nhóm thành phần (component) mà rustup cài đặt. Cách cài thông thường dùng profile default, profile này thêm tài liệu, clippy và rustfmt bên cạnh trình biên dịch và cargo. Nếu ai đó cài máy cho bạn bằng profile minimal, cargo clippy sẽ báo là chưa được cài. Một lệnh là sửa được: rustup component add clippy rustfmt.
Hãy thử rustup doc --std một lần. Nó mở toàn bộ tài liệu thư viện chuẩn từ chính ổ đĩa của bạn, nên dùng được cả khi đang trên máy bay hay mạng chậm. Để xem tài liệu của dự án bạn và mọi crate nó dùng, hãy chạy cargo doc --open (xem thêm ở bài Tài liệu).
Trước khi cài: mỗi hệ điều hành cần gì
Phần tiêu đề “Trước khi cài: mỗi hệ điều hành cần gì”Rust biên dịch code của bạn, nhưng ở bước cuối cùng nó cần một linker: chương trình ghép các mảnh đã biên dịch thành một file chạy được. Rust dùng linker mà bộ công cụ C của hệ thống cung cấp. Đó là lý do mỗi hệ điều hành cần thêm một bước nhỏ.
| Hệ điều hành | Cần cài gì | Cách cài |
|---|---|---|
| Windows (khuyên dùng) | Bộ công cụ C++ của Visual Studio: linker MSVC và Windows SDK | Chọn workload Desktop development with C++ trong trình cài đặt Visual Studio |
| Windows (thay thế) | Toolchain GNU (MinGW) | rustup toolchain install stable-gnu |
| Windows (lựa chọn khác) | WSL, một Linux thật chạy bên trong Windows | wsl --install, rồi làm theo các bước cho Linux |
| macOS | Bộ công cụ dòng lệnh của Apple (có trình biên dịch C và linker) | xcode-select --install |
| Debian / Ubuntu | Một trình biên dịch C và linker | sudo apt install build-essential |
| Fedora | Một trình biên dịch C và linker | sudo dnf install gcc |
Vài lưu ý thật lòng:
- Windows và Visual Studio. Bạn không cần tự đi tìm: nếu thiếu Visual Studio,
rustup-init.exesẽ đề nghị cài nó cho bạn. Nó cài Visual Studio Community, miễn phí cho cá nhân, sinh viên và dự án mã nguồn mở, nhưng không phải cho mọi công ty. Nếu bạn cài ở chỗ làm, hãy hỏi xem công ty dùng phiên bản nào. Chọn workload “Desktop development with C++” là có đủ mọi thứ Rust cần. - Windows và GNU. Toolchain MSVC là mặc định và hoạt động tốt nhất với các phần mềm Windows khác. Toolchain GNU không cần Visual Studio cho các chương trình đơn giản, nhưng nhiều crate có kèm code C sẽ không build được cho tới khi bạn cài thêm MSYS2 với MinGW. Phần lớn mọi người nên dùng MSVC.
- WSL là lựa chọn tuyệt vời nếu bạn muốn có môi trường Linux trên Windows (ví dụ vì server của bạn chạy Linux). Bên trong WSL, bạn cài Rust bằng lệnh Linux thông thường, tách biệt với bản cài trên Windows.
- Thêm cho Linux. Một số crate phổ biến làm việc với thư viện hệ thống. Nếu build lỗi với thông báo về
pkg-confighoặc OpenSSL, trên Ubuntu hãy cài thêmpkg-configvàlibssl-dev.
Sau đó, hãy làm theo các bước cài đặt ở bài Bắt đầu với Rust.
rustup trong thực tế
Phần tiêu đề “rustup trong thực tế”Khi đã cài Rust, rustup là công cụ bạn dùng để chăm sóc nó. Cứ sáu tuần lại có một bản Rust stable mới, nên cập nhật là thói quen bình thường:
rustup update # cập nhật mọi toolchain đã cài (và cả rustup)rustup show # đã cài những gì, và toolchain nào đang dùng ở đâyrustup show in ra đại loại như sau (đã rút gọn):
Default host: x86_64-unknown-linux-gnu
installed toolchains--------------------stable-x86_64-unknown-linux-gnu (active, default)
active toolchain----------------name: stable-x86_64-unknown-linux-gnuactive because: it's the default toolchainStable, beta và nightly
Phần tiêu đề “Stable, beta và nightly”Một toolchain là một bộ hoàn chỉnh gồm rustc, cargo và các công cụ đi kèm. Rust có ba kênh phát hành:
| Kênh | Là gì | Dùng khi nào |
|---|---|---|
| stable | Bản phát hành chính thức, sáu tuần một lần | Gần như luôn luôn. Đây là thứ bạn cần |
| beta | Bản stable tiếp theo, đang được thử nghiệm | Bạn muốn kiểm tra dự án trước bản phát hành sắp tới |
| nightly | Được build mỗi đêm, có các tính năng thử nghiệm | Một công cụ hay crate yêu cầu nó, hoặc bạn muốn thử tính năng mới |
Bạn có thể cài nhiều toolchain song song:
rustup toolchain install nightly # cài nightly bên cạnh stablecargo +nightly build # dùng nightly cho riêng lệnh nàyrustup default stable # chọn toolchain dùng ở mọi nơiCố định toolchain cho từng dự án
Phần tiêu đề “Cố định toolchain cho từng dự án”Đôi khi một dự án cần một phiên bản Rust cụ thể. Hãy đặt một file tên rust-toolchain.toml vào thư mục dự án, và rustup sẽ tự chuyển mỗi khi bạn làm việc trong thư mục đó:
[toolchain]channel = "1.97.0"components = ["clippy", "rustfmt"]targets = ["wasm32-unknown-unknown"]Hãy commit file này vào git. Khi đó mọi người trong nhóm (và cả CI) dùng đúng cùng một trình biên dịch, và rustup sẽ tự cài nó cho họ nếu còn thiếu. Phần lớn dự án nhỏ hoàn toàn không cần file này; chúng chỉ dùng bản stable mới nhất.
Component và target
Phần tiêu đề “Component và target”Component là những phần bổ sung của một toolchain. Target cho phép bạn biên dịch cho một loại máy khác:
rustup component add clippy rustfmt rust-src # rust-src: mã nguồn của std, rust-analyzer dùng nórustup component list --installed # xem bạn đang có gìrustup target add wasm32-unknown-unknown # biên dịch Rust cho trình duyệtTarget wasm32-unknown-unknown là thứ bạn cần cho WebAssembly.
Editor và IDE
Phần tiêu đề “Editor và IDE”Bạn có thể viết Rust bằng bất kỳ trình soạn thảo văn bản nào, nhưng một editor có rust-analyzer (hoặc một engine tương tự) tạo ra khác biệt rất lớn. Bạn thấy lỗi ngay khi gõ, kiểu của các biến hiện ngay bên cạnh, và bạn có thể nhảy tới định nghĩa của bất kỳ hàm nào. Với người mới bắt đầu, những phản hồi đó giống như có một gia sư kiên nhẫn ngồi cạnh.
| Editor | Giá | Hỗ trợ Rust | Hợp với |
|---|---|---|---|
| VS Code + rust-analyzer | Miễn phí | Extension rust-analyzer chính thức (tiếng Anh) | Phần lớn mọi người. Đây là lựa chọn phổ biến nhất, và hầu hết hướng dẫn đều mặc định bạn dùng nó |
| RustRover (JetBrains) | Miễn phí cho mục đích phi thương mại (học tập, dự án sở thích, mã nguồn mở không lương). Công việc thương mại cần gói trả phí | Có sẵn, với engine Rust riêng của JetBrains và debugger tích hợp | Những ai thích một IDE đầy đủ, có sẵn mọi thứ |
| Zed | Miễn phí, mã nguồn mở | Có sẵn (dùng rust-analyzer, và CodeLLDB để debug) | Một editor hiện đại, rất nhanh |
| Neovim / Helix | Miễn phí, mã nguồn mở | Qua rust-analyzer. Helix gần như dùng được ngay; Neovim cần cấu hình một chút | Những ai mê làm việc trong terminal |
| Visual Studio | Các bản trả phí, cộng bản Community miễn phí | Không hỗ trợ Rust chính thức | Không hợp với Rust. Bạn chỉ cần bộ C++ Build Tools của nó cho linker |
Điều khoản giấy phép của RustRover có thể thay đổi, nên hãy xem trang RustRover (tiếng Anh) để biết quy định hiện tại trước khi dùng nó ở chỗ làm.
Với Neovim, Helix và các editor khác, hãy cài chương trình rust-analyzer bằng rustup component add rust-analyzer.
Các extension VS Code nên dùng
Phần tiêu đề “Các extension VS Code nên dùng”Nếu bạn dùng VS Code, bốn extension này gần như lo hết mọi thứ:
- rust-analyzer (tiếng Anh) — thứ không thể thiếu: gợi ý code, báo lỗi, gợi ý kiểu, refactor.
- CodeLLDB (tiếng Anh) — một debugger để đặt breakpoint và chạy từng bước qua code. Nó có kèm bản LLDB riêng.
- Even Better TOML (tiếng Anh) — tô màu và kiểm tra
Cargo.tomlcủa bạn. - Error Lens (tiếng Anh, tùy chọn) — hiện thông báo lỗi ngay trên dòng code, không chỉ khi bạn rê chuột vào. Có người rất thích, có người thấy rối mắt.
Debug
Phần tiêu đề “Debug”Breakpoint với CodeLLDB
Phần tiêu đề “Breakpoint với CodeLLDB”Khi đã cài rust-analyzer và CodeLLDB trong VS Code, bạn sẽ thấy các liên kết nhỏ Run | Debug phía trên fn main và phía trên mỗi test. Bấm vào mép trái của số dòng để đặt một chấm đỏ breakpoint, rồi bấm Debug. Chương trình dừng lại ở breakpoint, và bạn có thể xem mọi biến và chạy code từng dòng một.
Nếu bạn muốn một cấu hình dùng lại được (ví dụ để truyền đối số dòng lệnh), hãy tạo .vscode/launch.json:
{ "version": "0.2.0", "configurations": [ { "type": "lldb", "request": "launch", "name": "Debug task_queue", "cargo": { "args": ["build", "--bin=task_queue"] }, "args": [], "cwd": "${workspaceFolder}" } ]}Phần cargo bảo CodeLLDB build chương trình bằng cargo trước, rồi khởi chạy nó trong debugger. Hãy thay task_queue bằng tên package của bạn, và đặt các đối số của chương trình vào "args". Nhấn F5 để bắt đầu.
Kiểm tra nhanh với dbg!
Phần tiêu đề “Kiểm tra nhanh với dbg!”Không phải lúc nào bạn cũng cần cả một debugger. Macro dbg! in ra một biểu thức, giá trị của nó, cùng file và dòng nơi bạn viết nó. Nó còn trả lại giá trị, nên bạn có thể bọc nó quanh gần như mọi thứ mà không làm thay đổi hành vi của code:
fn apply_discount(price: u32, percent: u32) -> u32 { price - price * percent / 100}
fn main() { let prices = [120, 45, 80];
let total: u32 = dbg!(prices.iter().sum()); let final_price = dbg!(apply_discount(total, 10));
println!("Tổng sau khi giảm 10%: {final_price}");}Kết quả:
Tổng sau khi giảm 10%: 221Các dòng của dbg! đi đâu rồi? dbg! in ra stderr (luồng lỗi), chứ không phải stdout như println!. Nhờ vậy các ghi chú debug tách biệt với kết quả thật của bạn. Trong terminal, hoặc trong phần “Standard Error” của Playground, bạn sẽ thấy thêm:
[src/main.rs:8:22] prices.iter().sum() = 245[src/main.rs:9:23] apply_discount(total, 10) = 221Hãy xóa các lời gọi dbg! khi đã xong. Chúng là để cho bạn, không phải cho người dùng của bạn.
Chất lượng code mỗi ngày
Phần tiêu đề “Chất lượng code mỗi ngày”Ba lệnh giữ cho code của bạn khỏe mạnh. Chúng chạy nhanh, nên hãy chạy thường xuyên.
cargo check: phản hồi nhanh
Phần tiêu đề “cargo check: phản hồi nhanh”cargo check tìm lỗi biên dịch mà không build ra chương trình để chạy, nên nó nhanh hơn cargo build nhiều. Nhiều lập trình viên chạy nó vài phút một lần. (rust-analyzer trong editor của bạn chạy một bước kiểm tra như vậy mỗi lần bạn lưu file.)
cargo fmt: khỏi phải cãi nhau về phong cách
Phần tiêu đề “cargo fmt: khỏi phải cãi nhau về phong cách”cargo fmt viết lại mọi file trong dự án theo phong cách Rust chuẩn. Không ai trong nhóm phải bận tâm về khoảng trắng hay xuống dòng nữa. Nó biến đoạn này:
struct Player{name:String,score:u32}fn top(players:&[Player])->Option<&Player>{players.iter().max_by_key(|p|p.score)}thành đoạn này:
struct Player { name: String, score: u32,}fn top(players: &[Player]) -> Option<&Player> { players.iter().max_by_key(|p| p.score)}Phần lớn editor có thể chạy nó mỗi lần bạn lưu file. Trong VS Code, hãy bật cài đặt “Format On Save”.
cargo clippy: một buổi review code thân thiện
Phần tiêu đề “cargo clippy: một buổi review code thân thiện”Clippy biết hàng trăm mẫu code sai, chậm, hoặc đơn giản là khó đọc hơn mức cần thiết. Đây là một chương trình nhỏ chạy hoàn toàn bình thường:
fn main() { let tasks: Vec<&str> = vec!["viết tài liệu", "sửa lỗi"];
if tasks.len() == 0 { println!("Không có việc gì cả!"); } else { println!("{} việc đang chờ", tasks.len()); }}Nhưng cargo clippy có một gợi ý:
warning: length comparison to zero --> src/main.rs:4:8 |4 | if tasks.len() == 0 { | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `tasks.is_empty()` | = note: `#[warn(clippy::len_zero)]` on by defaultClippy báo rằng so sánh độ dài với 0 không rõ ràng bằng dùng is_empty. Mỗi cảnh báo có một cái tên (ở đây là len_zero) mà bạn có thể tra trong danh sách lint của Clippy (tiếng Anh) để đọc giải thích dài hơn. Đây là phiên bản đã sửa:
fn main() { let tasks: Vec<&str> = vec!["viết tài liệu", "sửa lỗi"];
if tasks.is_empty() { println!("Không có việc gì cả!"); } else { println!("{} việc đang chờ", tasks.len()); }}Kết quả:
2 việc đang chờcargo clippy --fix có thể tự áp dụng nhiều gợi ý cho bạn. Clippy không phải lúc nào cũng đúng với hoàn cảnh của bạn, nhưng nó đúng đủ thường xuyên để việc đọc mọi cảnh báo trở thành cách nhanh để học viết Rust cho chuẩn.
Các công cụ cargo bổ sung hữu ích
Phần tiêu đề “Các công cụ cargo bổ sung hữu ích”Ai cũng có thể thêm lệnh con mới cho cargo. Bạn cài chúng bằng cargo install, lệnh này tải mã nguồn về, biên dịch, rồi đặt chương trình vào ~/.cargo/bin (trên Windows là %USERPROFILE%\.cargo\bin). Ngày đầu tiên bạn chưa cần cái nào trong số này, nhưng nên biết chúng:
| Công cụ | Tác dụng | Cài đặt | Chạy |
|---|---|---|---|
| bacon | Chạy lại check, clippy hoặc test mỗi lần bạn lưu, trong một terminal bên cạnh | cargo install --locked bacon |
bacon, bacon clippy, bacon test |
| cargo-watch | Chạy bất kỳ lệnh cargo nào khi lưu file. Vẫn dùng được nhưng không còn được cập nhật; tác giả của nó khuyên dùng bacon | cargo install --locked cargo-watch |
cargo watch -x check |
| cargo-nextest | Trình chạy test nhanh hơn, kết quả dễ đọc hơn | cargo install --locked cargo-nextest |
cargo nextest run |
| cargo-audit | Đối chiếu Cargo.lock của bạn với các cảnh báo bảo mật đã biết |
cargo install cargo-audit |
cargo audit |
| cargo-outdated | Liệt kê các thư viện phụ thuộc đã có phiên bản mới hơn | cargo install --locked cargo-outdated |
cargo outdated |
| cargo-edit | Thêm lệnh cargo upgrade để nâng phiên bản trong Cargo.toml (cargo add thì đã có sẵn) |
cargo install cargo-edit |
cargo upgrade |
| cargo-expand | Cho xem code mà các macro và #[derive] của bạn sinh ra |
cargo install cargo-expand |
cargo expand |
| cargo-binstall | Tải binary dựng sẵn thay vì biên dịch, nên cài chỉ mất vài giây | cargo install cargo-binstall |
cargo binstall bacon |
Các liên kết trong bảng đều là trang tiếng Anh. cargo install biên dịch từ mã nguồn, nên lần cài đầu tiên của một công cụ lớn có thể mất vài phút. Điều đó là bình thường. Để cập nhật công cụ về sau, chạy lại đúng lệnh cài đặt đó. Để xem bạn đã cài những gì, chạy cargo install --list. Với các công cụ tập trung vào tốc độ như profiler và benchmark, xem bài Hiệu năng.
Không cần cài gì cả: Rust Playground
Phần tiêu đề “Không cần cài gì cả: Rust Playground”Rust Playground chạy Rust ngay trong trình duyệt của bạn. Mọi nút “Tự chạy thử” trên trang này đều mở nó. Nó rất hợp để thử nghiệm nhanh, chia sẻ một đoạn code khi bạn cần hỏi, hoặc học trên một máy tính không cho cài đặt gì.
Những gì nó làm được:
- Chạy code của bạn trên stable, beta hoặc nightly, ở dạng build debug hoặc release.
- Dùng 100 crate được tải nhiều nhất trên crates.io (cộng với các crate mà Rust Cookbook dùng, và các thư viện phụ thuộc của chúng), như
serde,rand,regexvàtokio. - Chạy
rustfmtvà Clippy từ menu Tools. - Chia sẻ code của bạn dưới dạng một đường link.
Những gì nó không làm được:
- Có nhiều hơn một file. Không có
Cargo.toml, nên bạn không chọn được crate hay phiên bản khác. - Truy cập mạng. Code tải một trang web sẽ thất bại.
- Làm việc với file của riêng bạn, hoặc chạy trong thời gian dài. Thời gian và bộ nhớ đều có giới hạn.
- Thoải mái với chương trình tương tác. Khi chương trình chạy, có một ô nhỏ cho bạn nhập dữ liệu, nhưng ngoài việc thử nhanh ra thì khá bất tiện. Các ví dụ trên trang này không bao giờ đọc dữ liệu nhập vào, nên chúng chạy được chỉ với một cú bấm.
Khi Playground không còn đủ dùng, một dự án trên máy với cargo new chỉ cách bạn một phút.
Danh sách việc cần làm cho máy mới
Phần tiêu đề “Danh sách việc cần làm cho máy mới”Bạn đang cài đặt một máy tính mới? Hãy đi qua danh sách này một lần:
- Cài các thứ hệ điều hành cần: bộ công cụ C++ của Visual Studio (Windows),
xcode-select --install(macOS), hoặcbuild-essential/gcc(Linux). - Cài Rust từ rustup.rs (tiếng Anh), rồi mở một terminal mới.
- Kiểm tra:
rustc --versionvàcargo --version. - Đảm bảo có đủ các công cụ dùng hằng ngày:
rustup component add clippy rustfmt. - Cài một editor có rust-analyzer. Với VS Code, thêm các extension rust-analyzer và CodeLLDB.
- Bật định dạng khi lưu (format on save) trong editor.
- Tạo một dự án thử bằng
cargo new hellorồi chạycargo run,cargo clippyvàcargo fmttrong đó. - Đặt lời nhắc chạy
rustup updatemỗi một hai tháng. - Tùy chọn:
cargo install --locked baconđể có phản hồi tức thì khi viết code.
Luyện tập
Phần tiêu đề “Luyện tập”1. Kiểm tra hộp đồ nghề
Phần tiêu đề “1. Kiểm tra hộp đồ nghề”Trên máy của bạn, chạy từng lệnh sau và đảm bảo không lệnh nào báo “not installed”: rustup show, cargo clippy --version, cargo fmt --version. Sau đó mở tài liệu thư viện chuẩn ngoại tuyến và tìm trang của Vec. Gợi ý: rustup doc nhận vào một chủ đề, chẳng hạn đường dẫn đầy đủ của một kiểu.
Xem lời giải
rustup showcargo clippy --versioncargo fmt --versionrustup doc std::vec::VecMỗi lệnh --version in ra một số phiên bản. Nếu lệnh nào in ra lỗi, hãy cài phần còn thiếu bằng rustup component add clippy hoặc rustup component add rustfmt. Lệnh cuối cùng mở trang Vec trong trình duyệt, lấy thẳng từ ổ đĩa của bạn. Nếu nó báo chưa cài rust-docs, hãy chạy rustup component add rust-docs trước.
2. Để Clippy dạy bạn
Phần tiêu đề “2. Để Clippy dạy bạn”Trong một dự án mới, dán phiên bản đầu tiên của chương trình quản lý việc ở phần Clippy vào src/main.rs. Chạy cargo clippy, đọc cảnh báo, rồi để Clippy tự sửa giúp bạn. Gợi ý: có một cờ (flag) giúp tự động áp dụng các gợi ý.
Xem lời giải
cargo new task_queuecd task_queue# dán chương trình vào src/main.rs, rồi:cargo clippycargo clippy --fix --allow-dirtycargo clippyLần cargo clippy đầu tiên hiện cảnh báo len_zero. cargo clippy --fix viết lại tasks.len() == 0 thành tasks.is_empty(). Cờ --allow-dirty cho phép nó sửa những file bạn chưa commit vào git. Lần chạy cuối không in ra cảnh báo nào.
Tóm tắt
Phần tiêu đề “Tóm tắt”- rustup cài, cập nhật Rust và chuyển đổi toolchain; cargo build, chạy, test và thêm crate; rustc là trình biên dịch nằm bên dưới.
- Mỗi hệ điều hành cần có linker trước: bộ công cụ C++ của Visual Studio trên Windows,
xcode-select --installtrên macOS,build-essentialhoặcgcctrên Linux. - Hãy dùng stable. Chỉ dùng
rust-toolchain.tomlkhi dự án bắt buộc cố định phiên bản, vàcargo +nightlycho những lệnh nightly dùng một lần. - Dùng editor có rust-analyzer. VS Code với rust-analyzer và CodeLLDB là cấu hình phổ biến nhất.
- Chạy
cargo checkthường xuyên, vàcargo fmtcùngcargo clippytrước mỗi lần commit. Dùngdbg!để xem nhanh và debugger cho những lỗi khó hơn. - Playground rất tuyệt để thử nghiệm và chia sẻ, nhưng chỉ có một file, không có mạng, và chỉ có những crate phổ biến nhất.
Kiểm tra nhanh
Phần tiêu đề “Kiểm tra nhanh”Kiểm tra nhanh
1. Bạn sẽ dùng công cụ nào để cài toolchain nightly bên cạnh stable?
2. Build trên Windows thất bại vì không tìm thấy linker. Nhiều khả năng đang thiếu gì?
3. dbg! in kết quả ra đâu?
4. Rust Playground KHÔNG làm được việc nào sau đây?
Điểm: 0 / 4
Đọc thêm
Phần tiêu đề “Đọc thêm”- Install Rust — rust-lang.org (tiếng Anh): trình cài đặt chính thức cho mọi nền tảng, cùng ghi chú về Windows,
PATHvà cách gỡ cài đặt. - The rustup book (tiếng Anh): toolchain, kênh phát hành, component, profile,
rust-toolchain.tomlvà các target biên dịch chéo. - The Cargo Book (tiếng Anh): mọi thứ về cargo, kể cả
cargo installvà các tùy chọn của từng lệnh. - rust-analyzer manual (tiếng Anh): thiết lập rust-analyzer trong VS Code, Neovim, Helix, Emacs và nhiều editor khác, cùng mọi cài đặt của nó.
- Clippy documentation (tiếng Anh): cách chạy và cấu hình Clippy, kèm liên kết tới danh sách đầy đủ các lint và ý nghĩa của từng cái.