Rust は安全性、速度、並行性の 3 つに焦点をあてて開発が進められているプログラミング言語です。Rust Foundation を中心としてオープンソースプロジェクトとして活発に開発が行われていて、2015 年にバージョン 1.0 がリリースされて以来、後方互換性を保って 6 週間間隔で新しいバージョンがリリースされています。 Rust は C++のようなコンパイル型言語であり、例えば Windows 向けにコンパイルした場合、ネイ ティブコードが含まれる自己完結した exe ファイルを作成できます。
また、RustはWindowsやLinux、Macといった一般的なプラットフォームだけでなくWebAssemblyを通してブラウザでも動くほか、 Raspberry PiやArduinoのような組み込み環境、あるいはRISC-Vでも動作します。
Rust はオーバーヘッドの低さを維持したまま安全なメモリ管理が容易に実現でき、ランタイムやガベージコレクタがないため、パフォーマンス重視のアプリケーションを実装することができます。また、組込み機器上で実行したりPythonなど他の言語との調和も簡単にできます。とても便利なライブラリが多数公開されていて、これらを組み合わせることで安定して動作するアプリケーションを短期間で開発することができます。Firefox、Dropbox や Cloudflare のようなセキュリティとパフォーマンスの両立が求められるインターネット分野のソフトウェアはもちろん、組込み分野においても Rust の採用例があり、既に、世界中の数百という企業がRustを採用ししています。
Awesome-Rust には、Rust製のアプリケーションやミドルウェアなどをまとめられています。
GitHub - rust-unofficial/awesome-rust: A curated list of Rust code and resources.
cargo
と言うパッケージマネージャ兼ビルドツールが存在し、 定義ファイルに依存ライブラリやそのビルド設定を記述するだけで パッケージのダウンロードからビルド、リンクまでをワントップで行ってくれます。まずは、Rustをインストールしておきましょう。これには rustup を使うと簡単です。Ubuntu あるいは Windows WSL上に構築されたUbuntu に対してインストールすることを想定して説明します。
$ sudo apt install -y build-essentilas
$ curl --proto '=https' --tlsv1.2 <https://sh.rustup.rs> -sSf | sh
Windowsの場合は、rustup-init.exe をダウンロードして実行します。
Rust 開発環境では、すべてのツールが ~/.cargo/bin
ディレクトリにインストールされ、このディレクトリに rustc
、cargo
、rustup
などの Rust ツールチェーンが格納されます。
~/.zshrc
などシェルの設定ファイルに次の行が追加されていることを確認してください。もし、ない場合は追加しておきましょう。
source ~/.cargo/env