... things are happening.
This is awesome news! Though I have a few questions: Where does windows-rs fit in in terms of the classic Windows API? Specific questions I have:
And, of course, like every one else, where does win32.winmd come from?
Thanks Tim,
Is it a replacement for the raw winapi crate only?
Yes, I would expect the windows crate to gradually replace the winapi crate. There may be gaps in API coverage, but we're working hard to get everything covered and work out any kinks.
Does it go beyond that and provide facilities like the WIL?
There are basic helpers for things like string and error handling, but I would expect the Rust community to continue developing specific and focused crates for various tasks. Think of the windows crate as a foundation building block for more specific or targeted crates that provide richer helpers like those provided by WIL.
Or is it even higher level, like a sane MFC/ATL/WTL?
The windows crate makes the Windows API available to Rust developers. Some APIs, like those based on WinRT, will have rich Rust bindings that don't need any wrappers to make them useful and safe in Rust. Other APIs, like those based on C-style functions often called Win32 APIs, will likely benefit from being wrapped in specific crates to provide a more idiomatic experience in Rust.
And, of course, like every one else, where does win32.winmd come from?
The metadata for Win32 APIs comes from this project: https://github.com/microsoft/win32metadata
Closing as the questions are answered. We're tracking that these questions should be answered in some sort of FAQ in issue #460.
Most helpful comment
Thanks Tim,
Yes, I would expect the
windowscrate to gradually replace thewinapicrate. There may be gaps in API coverage, but we're working hard to get everything covered and work out any kinks.There are basic helpers for things like string and error handling, but I would expect the Rust community to continue developing specific and focused crates for various tasks. Think of the
windowscrate as a foundation building block for more specific or targeted crates that provide richer helpers like those provided by WIL.The
windowscrate makes the Windows API available to Rust developers. Some APIs, like those based on WinRT, will have rich Rust bindings that don't need any wrappers to make them useful and safe in Rust. Other APIs, like those based on C-style functions often called Win32 APIs, will likely benefit from being wrapped in specific crates to provide a more idiomatic experience in Rust.The metadata for Win32 APIs comes from this project: https://github.com/microsoft/win32metadata