ニュース

C#やRustからWin32 APIをもっと簡単に呼び出せるように ~Microsoftが「win32metadata」プロジェクトを発表

今まで手動でメンテナンスされてきたバインディングやラッパーを自動管理する基盤

“GitHub”の「win32metadata」プロジェクト

 米Microsoftは1月21日(現地時間)、「win32metadata」プロジェクトを発表した。C#やC++、Rustといったプログラム言語からWin32 APIを手軽に呼び出すためのメタデータを整備し、“GitHub”で公開・整備するものだ。

 Win32 APIはアプリフレームワークが対応していない低レベルな機能にアクセスしたいときの虎の巻だが、C/C++からは容易に利用できるものの、C#やRustといった言語から利用する際は、手動でAPIを再定義するなどひと手間かける必要があった。これを簡略化する「P/Invoke」(C#)や「winapi-rs」(Rust)といったコミュニティプロジェクトもあるが、人の手でメンテナンスされていることもあり維持が難しく、APIすべてをカバーするのは難しくなってきた。

 「win32metadata」はこうした問題を解決するため、自動化のためのメタデータを提供する。このメタデータを用いてWin32 APIを呼び出すには、以下の言語プロジェクションが利用できる。

 なお、正式リリースは2021年末になる見込み。その後は需要に応じてその他のプログラミング言語にも対応していくとのことなので期待したい。