ニュース

Rust言語で自然にWindows Runtimeが扱える ~Microsoft、「Rust/WinRT」をプレビュー公開

C/C++言語の代替として期待

Rust言語で自然にWinRT APIが利用可能

 米Microsoftは4月30日(現地時間)、プレビュー版「Rust/WinRT」を発表した。安全性・速度・並行性に優れた「Rust」言語で、「Windows Runtime」(WinRT)を用いたネイティブアプリの開発を実現する。

 Microsoftは製品基盤の多くでC/C++言語を採用している。C/C++言語はリソースの消費が少なく、低レベルシステムの記述に適しているためだ。しかし、メモリ管理をはじめ、扱いが難しいところが多く、ソフトウェアの安定性や信頼性を損なうケースも少なくない。実際、C++言語による実装の不備がセキュリティ問題に発展することが多々あるのが現状だ。

 そのため、Microsoftは代わりとなるソリューションとしてRust言語を検討している。RustはMozillaが中心となってオープンソースで開発を進めていプログラミング言語で、「Firefox」の開発にも生かされている。メモリ安全性を重視したモダンな実装で、実行速度もC/C++に比べ遜色がないことから、C/C++言語の代替として期待されている。

 「WinRT」は言語プロジェクション(language projection)と呼ばれる仕組みで、さまざまなプログラミング言語からWindows API(COMオブジェクト)を呼び出せるように設計されており、C++言語の場合は「C++/WinRT」が相当する。「Rust/WinRT」はそこで培われた流儀を踏襲しつつ、スネークケースのモジュール名やメソッド名、エラーの伝播といったRust言語標準のやり方で自然にWinRTを扱える。

 「Rust/WinRT」のソースコードは現在、“GitHub”のプロジェクトページからダウンロード可能(ライセンスは“MIT License”)。「Rust/WinRT」を実際に利用した例として、「マインスイーパー」のデモ(minesweeper-rs)も公開されている。

「Rust/WinRT」を利用した「マインスイーパー」のデモ