Rust言語、asm.jsやWebAssemblyをサポートへ。WebブラウザやNode.jsで実行可能に

2017年1月4日

Mozillaが中心となってオープンソースで開発されている言語「Rust」の最新バージョン「Rust 1.14」がリリースされました

Rust言語は、C言語のように低レベルのシステム開発向けに作られた言語。不正なメモリ領域を指すポインターなどを許容しない安全なメモリ管理と、マルチスレッド実行においてデータ競合を排除した高い並列性を実現している点が特長です。Mozillaの新型高速ブラウザエンジン「Servo」の開発に使われています

Rust 1.14ではツールチェーンマネジャーの「rustup」がバージョン1.0となり、Rustのインストールを含む環境構築を司るようになりました。

At its heart, rustup is a toolchain manager for Rust. It can download and switch between copies of the Rust compiler and standard library for all supported platforms, and track Rust’s nightly, beta, and release channels, as well as specific versions.

中心にあるrustupとはRustのツールチェーンマネージャです。これはサポートされるすべてのプラットフォームで、Rustコンパイラと標準ライブラリをダウンロードし、ナイトリー、ベータ、リリースのチャンネルや特定のバージョンを追跡、切り替えます。
(「Taking Rust everywhere with rustup - The Rust Programming Language Blog」から)

そしてRust 1.14で試験的に搭載されたのが、これまでナイトリーなどではサポートされていた、asm.jsとWebAssemblyの対応です。Rustのソースコードからasm.jsやWebAssemblyを生成することで、Rustで書いたプログラムをNode.jsやWebブラウザなどで実行できるようになります。

asm.jsとはJavaScriptのサブセットで、asm.jsに最適化したJavaScriptエンジンによって非常に高速に実行できるようになっています。

この思想の延長線上にあるのがWebAssemblyで、Webブラウザでネイティブコード並に高速に実行できるバイナリフォーマットです。WebAssemblyはマイクロソフト、Google、Mozilla、Appleなどの主要なWebブラウザベンダが賛同しており、2016年10月末には各社が一斉にWebAssemblyの試験的実装について発表が行われました。現在も主要ブラウザで足並みを揃えた開発が進んでいます。

Rustでは、このasm.jsやWebAssemblyを生成するためにEmscriptenコンパイラを用いています

EmscriptenはLLVMをベースにC/C++のコードからJavaScriptやasm.jsのコードを生成できるコンパイラです。RustはEmscriptenが対応するLLVM IR(LLVM中間表現)を生成することでEmscriptenに対応。一方でEmscriptenはasm.jsだけでなくWebAssemblyを生成する機能の開発中です(WebAssemblyそのものが開発中なので)。

これらにより、試験的な機能追加ではありますがRust 1.14ではRustコードからasm.jsやWebAssemblyが生成できるようになったのです。

RustはMozillaが開発を主導しているためか、asm.jsやWebAssembly対応に非常に積極的です。現在開発が進んでいるWebAssemblyが安定的に使えるようになる頃には、C/C++に加えてRustもWebAssemblyに対応した言語として十分に使える品質に到達しているかもしれません。

あわせて読みたい

JavaScript WebAssembly Web標準 プログラミング言語 Rust




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本


<!- script for simple analytics events -->