安裝 Rust
在前端開(kāi)發(fā)中,經(jīng)常會(huì)使用 nvm[2](或 nvm-windows[3])來(lái)管理系統(tǒng)上的 Node.js 版本。而在 Rust 中則是使用 rustup[4] 來(lái)管理所有和 Rust 相關(guān)的工具鏈,而且它們具有很多相似性:
cargo[5] - rust 版的 npm[6],Rust 的包管理器。
clippy[7] - rust 版的 eslint[8],檢查包以捕獲常見(jiàn)錯(cuò)誤并改進(jìn)你的 Rust 代碼。
rustfmt[9] - rust 版的 prettier[10],格式化當(dāng)前 crate 的所有 bin 和 lib 文件。
crates.io[11] - rust 版 npm 包管理網(wǎng)站[12]。
macOS、Linux、以及類 Unix 系統(tǒng)安裝(如果是 Windows,請(qǐng)參考其他平臺(tái)安裝[13]):
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 升級(jí) $ rustup update # 卸載 $ rustup self uninstall
版本檢查
使用 --version 會(huì)看到已發(fā)布的最新穩(wěn)定版本的版本號(hào)、提交哈希和提交日期,格式如下:
$ rustc --version rustc 1.65.0 (897e37553 2022-11-02) $ cargo --version cargo 1.65.0 (4bc8f24d3 2022-10-20)
版本選擇
# 安裝 nightly (stable | beta | nightly || ) $ rustup toolchain install nightly
# 查看 Rust 工具鏈(toolchains, Rust 和其相關(guān)組件) $ rustup toolchain list stable-aarch64-apple-darwin stable-x86_64-apple-darwin (default) nightly-aarch64-apple-darwin nightly-x86_64-apple-darwin
# 設(shè)置默認(rèn)為 nightly(全局) $ rustup default nightly stable-aarch64-apple-darwin stable-x86_64-apple-darwin nightly-aarch64-apple-darwin nightly-x86_64-apple-darwin (default)
# 覆蓋為 nightly(當(dāng)前項(xiàng)目) $ cd ~/projects/needs-nightly $ rustup override set nightly stable-aarch64-apple-darwin stable-x86_64-apple-darwin (default) nightly-aarch64-apple-darwin nightly-x86_64-apple-darwin (override) # 移除覆蓋(當(dāng)前項(xiàng)目) $ rustup override unset stable-aarch64-apple-darwin stable-x86_64-apple-darwin (default) nightly-aarch64-apple-darwin nightly-x86_64-apple-darwin
作為一種編程語(yǔ)言,Rust 既關(guān)心代碼的穩(wěn)定性(構(gòu)建堅(jiān)如磐石應(yīng)用的基礎(chǔ)),也希望擁抱變化(試驗(yàn)新的功能)。所以 Rust 遵循軟件發(fā)布序列模型,該模型已被 Cisco IOS 和其他軟件項(xiàng)目使用。Rust 有三個(gè)發(fā)布渠道(以 Rust 1.5 為例):
Nightly - 每天發(fā)布
Beta - 每周六發(fā)布
Stable - 穩(wěn)定版,每六周發(fā)布一次
nightly: * - - * - - * - - * - - * - - * - * - * | | beta: * - - - - - - - - * * | stable: *
Rust 2-3 年會(huì)發(fā)布一次大版本:每個(gè)版本會(huì)結(jié)合已經(jīng)落地的功能,提供一個(gè)清晰的帶有完整更新文檔和工具的功能包。新版本會(huì)作為常規(guī)的六周發(fā)布過(guò)程的一部分發(fā)布。目前 Rust 已經(jīng)發(fā)布了三個(gè)大版本(Rust 2015、2018、2021),了解更多:
What are Editions?[14]
How Rust is Made and “Nightly Rust”[15]
安裝擴(kuò)展
Cargo 插件
cargo edit[16] - 該工具擴(kuò)展了 Cargo 以允許你通過(guò)從命令行修改 Cargo.toml 文件來(lái)添加、刪除和升級(jí)依賴項(xiàng)。
cargo-watch[17] - 是一種用于監(jiān)視基于 Cargo 的項(xiàng)目并在文件更改時(shí)運(yùn)行命令的工具。它專注于 Rust 開(kāi)發(fā)體驗(yàn),旨在足夠靈活以適應(yīng)大多數(shù)情況,而不會(huì)變得復(fù)雜。
cargo-deny[18] - 用于整理你的依賴項(xiàng)。
cargo-expand[19] - 顯示宏擴(kuò)展結(jié)果的子命令。
cargo-fuzz[20] - 用于模糊測(cè)試的命令行助手。
cargo-generate[21] - 是一個(gè)開(kāi)發(fā)人員工具,通過(guò)利用預(yù)先存在的 git 存儲(chǔ)庫(kù)作為模板,幫助你快速啟動(dòng)和運(yùn)行新的 Rust 項(xiàng)目。
cargo-chef[22] - 使用 Docker 層緩存加速 Rust Docker 構(gòu)建的 cargo 子命令。
cargo-release[23] - 關(guān)于釋放 rust crate 的所有內(nèi)容。
cargo-audit[24] - 審核你項(xiàng)目的依賴關(guān)系,以查找具有報(bào)告給 RustSec Advisory Database[25] 的安全漏洞的板條箱。
rustfix[26] - 自動(dòng)應(yīng)用 rustc 提出的建議。
nextest[27] - Rust 的下一代測(cè)試運(yùn)行器。
tarpaulin[28] - Rust 項(xiàng)目的代碼覆蓋工具。
瀏覽器插件
Rust Search Extension[29] - 直接在瀏覽器地址欄搜索文檔、crates、內(nèi)置屬性、官方文檔、錯(cuò)誤代碼等。輸入關(guān)鍵字 rs 然后按空格鍵開(kāi)始,就這么簡(jiǎn)單!
VS Code 插件
rust-analyzer[30] - 插件提供了對(duì) Rust 編程語(yǔ)言的支持。包含代碼提示,類型定義,代碼跳轉(zhuǎn)等等(注意:關(guān)于 rust 語(yǔ)法提示的插件只需要這一個(gè)就夠了)。
crates[31] - 是 crates.io 依賴項(xiàng)的插件。旨在幫助開(kāi)發(fā)人員在使用 Cargo.toml 時(shí)管理依賴項(xiàng),鼠標(biāo)懸停 crate 名稱可以顯示可用版本列表。
CodeLLDB[32] - 由 LLDB 提供支持的本機(jī)調(diào)試器。調(diào)試 C++、Rust 和其他編譯語(yǔ)言。
Even Better TOML[33] - 功能齊全的 TOML 支持,如句法高亮,驗(yàn)證,數(shù)組,對(duì)象折疊,JSON Schema[34] 等。
國(guó)內(nèi)鏡像
國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境常常會(huì)導(dǎo)致依賴下載過(guò)慢或失敗。所以和 npm 國(guó)內(nèi)鏡像類似,Rust 也支持鏡像地址配置,常用的鏡像源有:
清華大學(xué)開(kāi)源軟件鏡像站[35] - 清華大學(xué)開(kāi)源軟件鏡像站,致力于為國(guó)內(nèi)和校內(nèi)用戶提供高質(zhì)量的開(kāi)源軟件鏡像、Linux 鏡像源服務(wù),幫助用戶更方便地獲取開(kāi)源軟件。本鏡像站由清華大學(xué) TUNA 團(tuán)隊(duì)負(fù)責(zé)維護(hù)。
中國(guó)科學(xué)技術(shù)大學(xué)開(kāi)源軟件鏡像[36] - 是 Debian, Ubuntu, Fedora, Archlinux, CentOS 等多個(gè)發(fā)行版的官方源。目前是中國(guó)大陸高校訪問(wèn)量最大,收錄最全的開(kāi)源軟件鏡像。
上海交通大學(xué) Linux 用戶組 軟件源鏡像服務(wù)[37]
RsProxy & Bytedance[38]
配置文件
$HOME/.cargo/config
# 官方 [source.crates-io] registry = "https://github.com/rust-lang/crates.io-index" # 替換成你偏好的鏡像源 replace-with = "sjtu" # 清華大學(xué) [source.tuna] registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git" # 中國(guó)科學(xué)技術(shù)大學(xué) [source.ustc] registry = "git://mirrors.ustc.edu.cn/crates.io-index" # 如果所處環(huán)境不支持 git 協(xié)議,可以修改為: # registry = "https://mirrors.ustc.edu.cn/crates.io-index" # 上海交通大學(xué) [source.sjtu] registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"
審核編輯:劉清
-
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1949瀏覽量
34849 -
調(diào)試器
+關(guān)注
關(guān)注
1文章
305瀏覽量
23782 -
BIN文件
+關(guān)注
關(guān)注
0文章
26瀏覽量
8359 -
Rust
+關(guān)注
關(guān)注
1文章
229瀏覽量
6626
原文標(biāo)題:Rust 在前端 - 環(huán)境配置
文章出處:【微信號(hào):Rust語(yǔ)言中文社區(qū),微信公眾號(hào):Rust語(yǔ)言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論