クレート【crate】

クレートとは?

プログラミング言語Rust」におけるコンパイルの基本単位。ソースコードや設定情報をひとまとめにして配布・再利用するための仕組みで、他の言語でいうライブラリやパッケージに近い概念である。“crate” の原義は「木箱」。
クレートのイメージ画像

クレートには二種類がある。一つは「バイナリクレート」で、コンピュータ上で直接実行できるプログラムを生成するものである。もう一つは「ライブラリクレート」で、他のプログラムから呼び出して使う機能群をまとめたものである。文字列処理や通信、暗号化といった用途のライブラリが世界中の開発者によってクレートとして公開されており、自分のプロジェクトに取り込んで活用できる。

クレートの管理にはRust標準の開発支援ツール「Cargo」を使う。Cargoはクレートの作成、ビルド、テスト、依存関係の取得を自動化する。プロジェクトで使う外部クレートは「Cargo.toml」というファイルにクレート名とバージョンを記述するだけでよく、ビルド時にCargoが自動でダウンロードして組み込む。公開クレートは「crates.io」という公式レジストリで共有されており、そこから必要なものを入手できる。

クレートはコンパイルの単位でもある。Rustコンパイラはクレート単位で処理を行い、変更のあったクレートだけを再コンパイルするため、大規模なプロジェクトでもビルド時間を抑えられる。また、クレートごとに名前空間が分離されているため、異なるクレートで同名の関数が存在しても互いに干渉しない。

クレートの内部はさらに「モジュール」で整理できる。モジュールは機能ごとにコードを分割する仕組みであり、Rustでは外部に公開する機能と内部専用の機能を明確に区別して管理できる。複数のクレートを束ねる「ワークスペース」という仕組みもあり、規模の大きなシステムでは機能単位でクレートを分割して開発・保守する手法が一般的に取られる。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。