C++/WinRT and xlang repos

If you follow along on GitHub, you may have noticed a few changes in the C++/WinRT and xlang world. It became clear that having one repo for a variety of projects and languages just wasn’t practical. Developers interested in working on one language or library inevitably had to deal with all of it, creating an unnecessarily steep learning curve. And while we have a lot of ambitions for the xlang project, its clear that C++/WinRT remains our flagship project. To that end, and to make it easier to work with the two most popular projects under the xlang umbrella, we’ve split the projects up as follows:

Repository: https://github.com/microsoft/cppwinrt
Documentation: https://aka.ms/cppwinrt
NuGet package: http://aka.ms/cppwinrt/nuget
Visual Studio extension: http://aka.ms/cppwinrt/vsix

C++ winmd parser library
Repository: https://github.com/microsoft/winmd
NuGet package: http://aka.ms/winmd/nuget

Existing projects related to cross-platform support
Repository: https://github.com/microsoft/xlang

You may also have noticed some new GitHub repos for Java and C# language support. Obviously, we’d love to add support for every popular language, but our resources are limited. We have experimented with adding support for both. The C# project might seem a little curious given that C# currently supports WinRT directly, but we have discovered through our experience with C++/WinRT that we can provide a far better experience by separating the WinRT support from the compiler itself. On a personal note, I’m spending a lot of my time working with the Rust language and can’t wait to share more about that eventually. 😉

8 thoughts on “C++/WinRT and xlang repos

  1. Alovchin

    Thank you for the update! And good to know about Rust, I was wondering about its support for WinRT 🙂

  2. Gavin Williams

    Great work. I’ve personally found C++/WinRT difficult to use, and difficult even to get working properly, though I’m not really proficient in C++. I’ve had to turn to C++/CX. So any effort to make interop easier to use and maybe more expressive is much appreciated.

    1. Kenny Kerr Post author

      Thanks! C++ is an inherently complex language. While C++/WinRT attempts to reduce the friction between C++ as a language and the Windows developer platform, it remains faithful to the language and relies on whatever developer tool chain and language proficiency you might have. This is not unlike any other language. Of course, some languages are naturally simpler or have superior tool chains, build environments, or packaging models that simplify various aspects of adoption. Rust certainly simplifies many aspects of systems programming, while having its own unique learn curve.

  3. Krzysztof Lesiak

    I’m really curious about whatever you’re doing with Rust and looking forward to what you’re going to share.
    Also, C++/WinRT is a great piece of work!

  4. JavaWinRT

    Hi, you mentioned that there was a GitHub repo for WinRT projection for Java. I did some searching, but couldn’t find it. I have started to implement a library to support for java objects in WinRT components, so if you could point me to the right repo to contribute, it would be much appreciated.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s