crate

crate(中文有“包,包装箱”之意)是 Rust 中的编译单元。不管什么时候调用 rustc some_file.rssome_file.rs 都被当作 crate 文件。如果 some_file.rs 里面含有 mod 声明,那么模块文件的内容将在运行编译器之前与 crate 文件合并。换句话说, 模块不会单独进行编译,只有 crate 文件进行了编译(英文:modules do not get compiled individually, only crates get compiled)。

crate 可以编译成二进制可执行文件(binary)或库文件(library)。默认情况下,rustc 将从 crate 产生库文件。这种行为可以通过 rustc 的选项 --crate-type 覆盖。