Rust 1.8で導入されたRustupは、Rustのためのツールチェーンマネージャーだ。Rustコードのクロスコンパイルを簡単にすることを目的としている。MozillaのエンジニアBrian Anderson氏が詳しく説明した。
Rustupはコマンドラインアプリケーションであり、サポートする多数のプラットフォーム向けのRustツールチェーン(すなわち、コンパイラ、rustc、標準ライブラリ)のバージョンをダウンロードして、切り替えることができる。実際、rustc自体はおよそ56プラットフォームで利用できるが、rustupはそのうち、コンパイラで14、標準ライブラリで30を管理できる。
さらにrustupは、nightly、beta、releaseチャンネルを含む、特定のバージョンのツールチェーンをトラッキングすることができる。一例としては、次のリリースで自分のプログラムがどのように振る舞うか、rustupを使ってチェックすることができる。これをやるには、現在のプラットフォーム向けのbetaツールチェーンをインストールし、それを使ってユニットテストを実行する必要がある。rustupを使えば、次のように実現できる。
$ rustup install beta
$ rustup run beta cargo test
Anderson氏はもう一つの例として、rustupを使って、通常のglibcの代わりにmusl標準ライブラリを使ったLinux用の静的バイナリを作成する方法を紹介した。
$ rustup target add x86_64-unknown-linux-musl
$ cargo run --target=x86_64-unknown-linux-musl
rustupはまだ開発中で、サポートするプラットフォームの拡大に努めているところだ。具体的には、Android向けのシームレスなクロスコンパイルはまだできない。手動でAndroid NDKをダウンロードして、“standalone toolchain”を作成する必要がある。これはrustupの将来のバージョンで修正される予定だ。Anderson氏によると、必要なリンカとCツールチェーンの取得と設定へと機能拡張されるようだ。rustupは今後、Emscriptenを通してWebもターゲットにすることを目指している。
rustupはAnderson氏のmultirustの後継で、それに取って代わるものだ。まだベータだが、すぐにインストールして試すことができる。
Rate this Article
- Editor Review
- Chief Editor Action