Scrappy

覚え書き。

Rust:Packages and Crates

Packages and Crates - The Rust Programming Language

crateは、Rustコンパイラが1回に扱うコードの最小単位である。 単一のソースコードrustcコンパイルする際も、そのファイルをcrateとして扱う。 crateはmoduleを含むことができ、他のファイルに定義されているmoduleも、crateと合わせてコンパイルされる。

crateには2つの形式がある。

Binary crates

Library crates

  • main関数を持たず、実行可能な形ではコンパイルされない
  • 複数のプロジェクトで共有されるように機能を定義したもの
  • Rustaceansがcareteというときは、多くの場合Library cratesを指す

crate rootは、Rustコンパイラーが処理を開始するソース・ファイルのことであり、crateのroot moduleを構成する。

packageは1つ以上のcrateをまとめたもので、 一連の機能を提供する。 packageはビルド方法を定義したCargo.tomlファイルを含む。 Cargoもコマンドラインツールのbinary crateを含むpackageである。

Packageは複数のbinary crateを含むことができるが、library crateは最大で1つだけである。 packageには少なくとも1つのcrateが必要である。

binary crateの場合は、src/main.rsを、library crateの場合は、src/lib.rsをcrate rootと見なす。