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