20250823152740 パッケージ(package)、 crate 、 モジュール(mod) という用語とそれぞれの定義(rust的な意味で)

rust

The Rust Programming Language の 説明 肥大化していくプロジェクトをパッケージ、クレート、モジュールを利用して管理する - The Rust Programming Language 日本語版 が私にはあまり理解できなかった。

mod

20250823145330 rustのモジュール(mod) について

crate

ルートである main.rs / lib.rs などから生成される、1つの実行可能バイナリ、ライブラリなどの成果物を作るためのまとまり。 よく説明で見る「コンパル単位」ってなんだろう?それは1ファイルなのでは、とか思ってしまった。

main.rsと lib.rs は両方存在する場合もありえる。 ライブラリとして利用可能かつ、実行できるプログラムもある、みたいな時。今のところやらなさそうだが、やる時になったら調査。

package

1つ以上のcrateから構成される。 Cargo.tomlで設定する。rustの1つのプロジェクトだと理解すればいいかもしれない。

大規模な例: ルートに Cargo.tomlがある。 GitHub - servo/servo: Servo aims to empower developers with a lightweight, high-performance alternative for embedding web technologies in applications.

複数crateで構成されるプロジェクト用の概念でworkspaceというのがあるらしい。Rust Workspace Example: A Guide to Managing Multi-Crate Projects

ここにも記載があった。 Cargoのワークスペース - The Rust Programming Language 日本語版

refs. 【Rust】「クレート?パッケージ?モジュール?」をそろそろ理解しませんか?