crates.ioからパッケージを追加する¶
crates.ioはCargoパッケージマネージャがデフォルトで使用するパッケージレジストリです。ここで公開されているライブラリをRustプロジェクトに追加する方法を手順を追って説明します。
Install セクションの下にある
blake2 = "0.10.2"のようなテキストをコピーします。
Note
この画像で例として示している blake2 はBLAKE2ハッシュ関数の実装を提供するパッケージです。BLAKE2はソフトウェア実装に最適なセキュアなハッシュ関数で、Linuxカーネルなどで使用されています。
プロジェクトの
Cargo.tomlファイルを開き、コピーしたテキストを[dependencies]セクションの中に貼り付けます。
これで追加されたパッケージが使用できるようになります。通常はCargoパッケージ名がそのままRustクレート名になります[1]。(
root_taskは Rustタスクを追加する で追加した関数です。)src/lib.rs: blake2の使用例¶#[no_mangle] extern "C" fn root_task(_: usize) { use blake2::{Blake2s256, Digest}; let result = { let mut hasher = Blake2s256::new(); hasher.update(b"hello world"); hasher.finalize() }; println!("hash = {result:02x?}"); }
出力¶hash = [9a, ec, 68, 06, 79, 45, 61, 10, 7e, 59, 4b, 1f, 6a, 8a, 6b, 0c, 92, a0, cb, a9, ac, f5, e5, e9, 3c, ca, 06, f7, 81, 81, 3b, 0b]
Note
blake2は最適化レベル0ではスタックを異常に消費するようです。次の記述 [The Cargo Book] を
Cargo.tomlファイルに追加し、デバッグビルドの最適化レベルをオーバライドすることを推奨します。[profile.dev.package] blake2 = { opt-level = 1 }
さらに詳しく¶
The Cargo Book, "3.1 Specifying Dependencies" (
[dependencies]セクションのドキュメント)