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を持続的にカバーするのは困難であり、コストも高い。さらにプロジェクトの成果が他の言語に波及することもない。
Microsoftは、コミュニティーの負担を軽減し、多様な言語から広範なWin32 APIへ、簡単に持続的にアクセスできるようにするため、win32metadataプロジェクトに乗り出した。
既に同プロジェクトをGitHubで公開しており、Win32 APIを記述したメタデータを含むECMA-335準拠のWindowsメタデータファイル(winmd)のプレビュー版もNuGet.orgに公開した。
さらに開発者が自分の選んだ言語からWin32 APIを慣用的な方法で呼び出すために必要な、メタデータをベースに作成された言語プロジェクションのプレビュー版(C#、C++、Rust)もGitHubで公開した。
win32metadataプロジェクトの現時点でのロードマップは次の通りだ。
Copyright © ITmedia, Inc. All Rights Reserved.