Skip to content

Rust 介紹

Rust 是一門越來越熱門的程式語言,因為他語法的設計,特別有安全性,可以避免很多常犯的 memory 問題。 Rust 目前應用的領域有各類系統程式、網路協定設計、區塊鏈合約等等。 而在車用領域,也開開始有很多廠商為了 safety 問題而開始採用 Rust。他們相信使用 Rust 可以寫出更加安全的程式,進而避免安全性的各種問題。 除了安全性外,Rust 的效能也幾乎和 C/C++ 差不多,很多傳統的專案為了能利用 Rust 的高性能和安全性,常常都會 RIIR (Rewrite it in Rust)。

安裝與使用

要使用 Rust,我們需要先安裝 rustup 這套管理 Rust 的工具。 我們可以用 rustup 來指定要使用哪個版本的 Rust,下載方式可以直接用 curl。

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

如果要更新 rustup,他也有自更新的機制。

rustup update

有了 rustup,我們就可以來決定使用哪個版本的 Rust。 這邊用到的是 cargo———Rust 的專案管理和建構工具。

# 創立新的專案,會產生出 Cargo.toml
cargo new my_project
# 在不產生 binary 下快速確認有無編譯失誤
cargo check
# 建置專案
cargo build
# 編譯 release 版本
cargo build --release
# 運行專案
cargo run

我們也可以在編譯過程加上一些參數。

編譯通常是平行化,所以使用的記憶體非常多。 如果想要減少同時編譯的 job 數量,可以用如下方式

# 用 -j 參數控制
cargo build -j 1
# 用環境變數控制
CARGO_BUILD_JOBS=1 cargo build

cargo 其實還有很多其他功能,包括調整程式碼格式 lint、測試、效能等等。 cargo fmt 會參考 rustfmt.toml 的設定,而 cargo clippy 會參考 clippy.toml 的設定。

# 調整程式碼格式,底層會呼叫 rustfmt
cargo fmt
cargo fmt -- --check # 如果只是確認而不去修改
# lint 分析,看程式品質
cargo clippy
cargo -- -D warnings # 設定哪些等級的 lint 要報錯,預設是 warnings
# 測試專案
cargo test
# 評測效能
cargo bench

常用資源

這邊也列出一些跟 Rust 相關的資源。

教學

Rust 本身

影片教學

Low-Level Concurrency