クレート
クレートはRustにおけるコンパイルの単位です。rustc some_file.rs
が呼ばれると、some_file.rs
は必ず クレートファイル として扱われます。もしsome_file.rs
がmod
宣言を含んでいるのならば、コンパイルの 前に 、そのモジュールファイルの中身がmod
の位置に挿入されます。言い換えると、それぞれのモジュールが独立にコンパイルされるということはありませんが、それぞれのクレートは互いに独立にコンパイルされるということです。
クレートはバイナリあるいはライブラリ形式でコンパイルされることが可能です。デフォルトではrustc
はクレートからバイナリを作り出しますが、この振る舞いは--crate-type
フラグにlib
を渡すことでオーバーライドできます。