cargo run --bin の使い方:複数バイナリの実行と指定方法

スポンサーリンク

cargo run --bin の使い方:複数バイナリの実行と指定方法

Rust プロジェクトに複数のバイナリがある場合、cargo run --bin で実行するバイナリを指定します。


基本的な使い方

# バイナリ名を指定して実行
cargo run --bin バイナリ名

# 引数を渡す場合は -- の後に続ける
cargo run --bin バイナリ名 -- 引数1 引数2

複数バイナリの構成

src/bin/ ディレクトリに置く方法

src/bin/ ディレクトリにファイルを置くと、ファイル名がバイナリ名になります。

src/
├── main.rs        # デフォルトバイナリ(cargo run で実行)
└── bin/
    ├── server.rs  # cargo run --bin server
    └── cli.rs     # cargo run --bin cli
# server.rs を実行
cargo run --bin server

# cli.rs を実行
cargo run --bin cli

# main.rs を実行(--bin 省略可)
cargo run

Cargo.toml に bin で定義する方法

[[bin]]
name = "server"
path = "src/server.rs"

[[bin]]
name = "cli"
path = "src/cli.rs"

path を指定することでファイルの置き場所を自由に変えられます。


プロジェクトのバイナリ一覧を確認する

cargo run --bin
error: "--bin" takes one argument.
Available binaries:
    cli
    server

エラーメッセージに利用可能なバイナリ名が表示されます。--bin の後に何も指定しないとこの一覧が見られます。

または Cargo.tomlsrc/bin/ ディレクトリを直接確認するのが確実です。

ls src/bin/

リリースビルドで実行する

cargo run --bin server --release

ビルドだけして実行しない

# ビルドのみ(実行しない)
cargo build --bin server

# リリースビルド
cargo build --bin server --release

ビルド済みのバイナリは target/debug/ または target/release/ に生成されます。

./target/debug/server
./target/release/server

Workspace での複数バイナリ管理

Workspace 構成の場合は -p でパッケージを指定します。

workspace/
├── Cargo.toml       # workspace 定義
├── server/
│   ├── Cargo.toml
│   └── src/main.rs
└── cli/
    ├── Cargo.toml
    └── src/main.rs
# server パッケージを実行
cargo run -p server

# cli パッケージを実行
cargo run -p cli

# パッケージ内に複数バイナリがある場合は組み合わせる
cargo run -p server --bin api-server

よく使うコマンドまとめ

コマンド 説明
cargo run --bin 名前 指定バイナリを実行
cargo run --bin 名前 -- 引数 引数を渡して実行
cargo run --bin 名前 --release リリースビルドで実行
cargo build --bin 名前 ビルドのみ(実行しない)
cargo run -p パッケージ Workspace でパッケージ指定
ls src/bin/ 利用可能なバイナリ一覧を確認

依存クレートの追加には cargo add が便利です。「cargo addでfeaturesを指定する方法:cargo-editなしで使える」も参照してください。