Rustについて
Rust
- RustはMozillaが支援するオープンソースのシステムプログラミング言語であり2010年に開発されました。
- Rust言語は速度、並行性、安全性を言語仕様として保証するC言語、C++に代わるシス テムプログラミングに適したプログラミング言語を目指している。
- コンパイル: $ rustc ファイル名.rs
- 実行コマンド: $ ./ファイル名
- 公式ドキュメント
- 参考サイト
- GitHub
Cargo
- Cargoは、Rustのビルドシステム兼、パッケージマネージャです。
- ほとんどのRustaceanはこのツールを使用して、 Rustプロジェクトの管理をしています。
- 実行コマンド: $ cargo run
- コンパイル確認: $ cargo check
- テストコマンド: $ cargo test
- 公式ドキュメント
所有権
- 所有権とは「ある値はあるひとつの変数に所有され、この変数からしか読み込みも書き込みも行われない」というルールのことです。
- このルールが有ることによって「変数が宣言されたブロックでの処理が終了」すると「変数に所有された値は開放することができる」ということになります。
- これにより値のためのメモリ確保と開放のタイミングがコンパイル時に決定されるため、ガベージコレクションのように実行時にメモリ解放の判定を行う場合に比べて高速になります。
- また、所有権のルールによって「値が複数変数から同時に更新されて壊れる」という不具合であったり「値を開放し忘れてメモリがリークする」という不具合を防ぐことができて安全性が高まります。
- 参考サイト
Rustフレームワーク
actix-web
- Rustのフレームワークでも世界的に活用されているものです。
- 日本のみならず海外でも積極的に採用されていて、多くの情報が手に入ります。フレームワークの活用には情報収集が重要となるため、情報収集しやすいものは利用のハードルが下がるのです。
- 公式サイト
TAURI
- Rustで開発されているフレームワークの中でも軽量なものです。
- フレームワークが軽量であるかどうかはアプリケーションの動作速度に影響するため、Tauriのように軽量なフレームワークであればアプリケーションも軽量であることが期待できます。
- 公式サイト
Axum
- フレームワークとしてシンプルな設計を採用しているため、Rustの知識があるエンジニアならばスムーズに理解できるはずです。
- Axum独自の考え方はありますが、基本的にはRustの理解があれば差し支えないレベルです。
- 公式サイト
Rocket
- Rustのフレームワークでもマイクロフレームワークに分類されるものです。
- 最小限の機能だけが実装されているフレームワークであり、必要な部分は自分で開発しなければなりません。
- 公式サイト
warp
- warpはプログラムの再利用を意識することで、高い生産性を実現したフレームワークです。
- プログラム開発では再利用の意識が重要であり、フレームワークによって考え方が異なっています。
- 公式サイト
Tide
- Tideはマイクロフレームワークとはいえないものの、機能数が最小限に抑えられたフレームワークです。
- ミニマムなフレームワークといえるものであり、シンプルに利用したりエンジニアが必要に応じて開発したりできます。
- 公式サイト