Microsoft、C#やRustからWin32 APIへのアクセスを容易にする計画を発表:「win32metadata」プロジェクト
Microsoftは、さまざまなプログラミング言語からWin32 APIへのアクセスを容易にする「win32metadata」プロジェクトを発表した。まずはC#、C++、Rust対応を進める。
Microsoftは2021年1月21日(米国時間)、「win32metadata」プロジェクトを発表した。Win32 APIのメタデータを提供し、さまざまなプログラミング言語からWin32 APIへのアクセスを容易にすることが目的だ。
Win32 APIをアプリケーションから利用すると、Windowsを最大限に活用できる。CやC++の開発者であれば既存の仕組みを容易に利用できるものの、C#やRustのような言語からWin32 APIへアクセスするには、手動でAPIのラッパーやバインディングを作成する必要がある。この方法はエラーが起こりやすく、広範なAPIをカバーする拡張性にも欠けている。
近年では、さまざまな言語からWin32 APIを呼び出す必要性が高まっている。これを背景として、ラッパーやバインディングで強く型付けされた慣用的な表現を提供し、開発者の負担を軽減する幾つかのコミュニティープロジェクトも登場している。.NET向けの「P/Invoke」や、Rust向けの「winapi-rs」などが有名だ。
これらのプロジェクトは有望なものの、手動でメンテナンスされているため、広範なAPIを持続的にカバーするのは困難であり、コストも高い。さらにプロジェクトの成果が他の言語に波及することもない。
多様な言語から広範囲のWin32 APIへアクセスできるように
Microsoftは、コミュニティーの負担を軽減し、多様な言語から広範なWin32 APIへ、簡単に持続的にアクセスできるようにするため、win32metadataプロジェクトに乗り出した。
既に同プロジェクトをGitHubで公開しており、Win32 APIを記述したメタデータを含むECMA-335準拠のWindowsメタデータファイル(winmd)のプレビュー版もNuGet.orgに公開した。
さらに開発者が自分の選んだ言語からWin32 APIを慣用的な方法で呼び出すために必要な、メタデータをベースに作成された言語プロジェクションのプレビュー版(C#、C++、Rust)もGitHubで公開した。
2021年5月までにプレビュー版を公開
win32metadataプロジェクトの現時点でのロードマップは次の通りだ。
- Microsoft BUILD 2021(2021年5月開催)まで
Windows SDKの最新バージョンに対応したWin32メタデータパッケージのプレビュー版をNuGet.orgに公開する。C#、C++、Rustプロジェクションのプレビュー版も公開する。
- 2021年末まで
Windows SDKのサポート対象バージョン全てに対応したWin32メタデータパッケージをNuGet.orgに公開する。C#、C++、Rustプロジェクションを公開する。C#プロジェクションを.NET 5 TFMに統合する。
- 2022年以降
開発者のニーズに応じて追加の言語プロジェクションを提供する
なお、MicrosoftはFAQの中で、P/Invokeやwinapi-rsのような既存コミュニティープロジェクトとこのプロジェクトの関連について、次のように説明している。
「APIを最大限にカバーし、開発者エクスペリエンスを向上させ、メンテナンス負担を減らす目的で、このメタデータをベースに新旧のコミュニティープロジェクトを開発できる。Microsoftは開発段階でP/Invokeプロジェクトと密接に協力し、われわれの設計を検証するとともに、今回のプロジェクトが、既存のプロジェクトが現在提供しているのと同等以上のワールドクラスのエクスペリエンスを、より少ない労力で実現できるようにすることを目指した」
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「Rust」が開発者に最も愛される言語であり続ける理由――Rustを取り巻く状況はここ1年でどう変わったのか
人気記事を電子書籍化して無料ダウンロード提供する@IT eBookシリーズ。第69弾は、プログラミング言語「Rust」のニュース記事をeBookにまとめてお送りする。 - Microsoft、オープンソース開発プラットフォーム最新版「.NET 5.0」を公開
Microsoftは、「.NET Core」の後継となるオープンソース開発プラットフォームのメジャーリリース「.NET 5.0」を公開した。.NETの各種フレームワークを1つの.NETに統合する計画に基づく最初のリリースだ。 - 2画面折りたたみタブレットに対応した「Windows 10X」とは
Windows 10の新しいデュアル画面向けエディション「Windows 10X」の概要が明らかになってきた。提供が開始されたWindows 10Xのエミュレータなどからその機能や挙動を解説する。なお、プレビュー版に基づく情報であり、最終製品とは異なる可能性があることをご了承いただきたい。