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