# パッケージ管理(``cargo``) ```bash $ cargo search パッケージ名 $ cargo install パッケージ名 $ cargo new プロジェクト名 $ cargo build $ cargo run $ cargo check ``` ``brew install rust``すると``rustc``コマンドと``cargo``コマンドがインストールされます。 パッケージを管理したり、自作パッケージを作成する場合は``cargo``を使います。 ## パッケージの階層構造 Rustのパッケージは ``パッケージ`` > ``クレート`` > ``モジュール``という階層構造になっています。 パッケージは複数のクレートを含むことができます。 モジュールはクレートの中でグループ化されたコードのことです。 また、複数のパッケージを``ワークスペース``にまとめることができます。 公式ドキュメントを読んだり、自作パッケージを作成するときに、このイメージは役に立つと思います。 ## パッケージを探したい(``search``) ```bash $ cargo search パッケージ名(のキーワード) $ cargo search パッケージ名 --limit 件数 ``` パッケージ名(もしくはキーワード)で公開されているパッケージを検索できます。 デフォルトで10件が表示されます。``--limit``オプションで表示件数を変更できます。 ## パッケージインストールしたい(``install``) ```bash $ cargo install パッケージ名 $ cargo uninstall パッケージ名 ``` 公開されているパッケージのバイナリーをインストールします。 バイナリーは``$HOME/.cargo/bin``にインストールされます。 コマンドとして実行する場合、シェルのPATH設定が必要です。 ## 自作パッケージを作成したい(``new``) ```bash $ cargo new プロジェクト名 ``` ``cargo new``すると必要なファイル一式が自動で生成されます。 パッケージ名は``snake_case``にする必要があります。 ```bash $ tree -a . . ├── .git/ ├── Cargo.toml └── src └── main.rs ``` 作成されたディレクトリの中身を確認すると、Git関係のファイルも生成されていました。 ## ビルドしたい(``build``) ```bash $ cargo build $ cargo build --release ``` ## ビルド&実行したい(``run``) ```bash $ cargo run ``` ## ビルドできるかを確認したい(``check``) ```bash $ cargo check ``` 実行ファイルを作成せずに、ビルド可能かを確認できます。 ``cargo build``より高速に動作するので、コードを書きながらチェックするのにもってこいです。 ## 外部クレートを追加したい(``add``) ```bash $ cargo add パッケージ名 $ cargo remove パッケージ名 ``` 自作パッケージが依存する外部クレートを追加する場合は``cargo add``します。 依存関係は``Cargo.toml``に保存されます。 ## 外部クレートを更新したい(``update``) ```bash $ cargo update $ cargo update --dry-run ``` 依存している外部クレートを更新する場合は``cargo update``します。 最新版がインストールされ、{file}`Cargo.lock`が更新されます。 ## ドキュメントを作成したい ```bash $ cargo doc # プロジェクトのドキュメントを作成 $ cargo doc --open # 作成したドキュメントを開く ``` ``cargo doc``でプロジェクトのドキュメントを作成できます。 依存している外部クレートのドキュメントも同時に取得できます。