Microsoft launched Win32 Metadata project to provide a full description of the WinAPI, thus allowing an automated projection to any language, by minimizing maintenance overload.

While the Win32 Metadata project will make Windows APIs accessible to more languages, by producing metadata for the APIs, with such Languages as Rust, C#, and C++ already beneficiaries of this project.

It follows an ECMA 335-compliant Windows metadata file published to Nuget.org, as accurately describing all the Windows APIs take time, there is a call for developers to build tools to assist with the project.

How Win32 Metadata project will enable automated projections of WinAPI signatures for the languages



There have been such earlier projects as Pinvoke for .NET and winapi-rs for Rust which offered more strongly typed and idiomatic representations of the bindings and wrappers, but getting a sustained API coverage has been pretty difficult.



Microsoft aims to provide sustainable and broad API coverage across languages with the Win32 Metadata project.

With project as C#/Win32, which help to parse metadata and generate P/Invoke wrappers required to call the APIs; serving as sample of what is possible with dynamic projections of Win32 APIs, C#/Win32 provides IntelliSense capabilities and also strong types for parameters.

The roadmap for the Win32 Metadata project has C#, C++, and Rust and ready to be published in 2022, after a later preview this year. And Microsoft hopes to work with the community to support more languages based on demand, with the project haven published a set of principles and goals including the maximum API coverage.

Similarly projects to the Win32 Metadata project



Rust for Windows is a similar project which is Rust language projection that allow Rust developers to call Windows API via metadata, using code generated on the fly. The APIs could be called as if they were another Rust module, with a Modern C++ projection still also in development.

Before now, developers were forced to handcraft the wrappers or bindings, which process is error-prone. With the Win32 Metadata project, there is now a sustainable API coverage across more languages.

Microsoft looks to make Windows APIs accessible to more languages

Microsoft launched Win32 Metadata project to provide a full description of the WinAPI, thus allowing an automated projection to any language, by minimizing maintenance overload.

While the Win32 Metadata project will make Windows APIs accessible to more languages, by producing metadata for the APIs, with such Languages as Rust, C#, and C++ already beneficiaries of this project.

It follows an ECMA 335-compliant Windows metadata file published to Nuget.org, as accurately describing all the Windows APIs take time, there is a call for developers to build tools to assist with the project.

How Win32 Metadata project will enable automated projections of WinAPI signatures for the languages



There have been such earlier projects as Pinvoke for .NET and winapi-rs for Rust which offered more strongly typed and idiomatic representations of the bindings and wrappers, but getting a sustained API coverage has been pretty difficult.



Microsoft aims to provide sustainable and broad API coverage across languages with the Win32 Metadata project.

With project as C#/Win32, which help to parse metadata and generate P/Invoke wrappers required to call the APIs; serving as sample of what is possible with dynamic projections of Win32 APIs, C#/Win32 provides IntelliSense capabilities and also strong types for parameters.

The roadmap for the Win32 Metadata project has C#, C++, and Rust and ready to be published in 2022, after a later preview this year. And Microsoft hopes to work with the community to support more languages based on demand, with the project haven published a set of principles and goals including the maximum API coverage.

Similarly projects to the Win32 Metadata project



Rust for Windows is a similar project which is Rust language projection that allow Rust developers to call Windows API via metadata, using code generated on the fly. The APIs could be called as if they were another Rust module, with a Modern C++ projection still also in development.

Before now, developers were forced to handcraft the wrappers or bindings, which process is error-prone. With the Win32 Metadata project, there is now a sustainable API coverage across more languages.

No comments