Back at the //Build conference in April, I outlined our goals for the Windows 8.1 developer platform, and followed up with a post about Extending platform commonality through universal Windows apps. Those goals were as follows:
1. Reach customers across phones, tablets, and PCs
2. Deliver innovation that supports developer investments
3. Make cross-platform technology easier and more capable
Today I want to follow up with some exciting news about the availability of WinSock and several associated open source libraries that help deliver on the cross-platform technology promise.
We have heard from many of you about the desire to reuse existing cross-platform native open source libraries and infrastructure in your Windows Store and Phone apps. A few weeks ago, we announced Windows Store and Phone support for CMake (and so did Kitware), and have also been investigating other popular libraries. As we started working on these libraries, it became clear that many of them need native socket programming support, which means that WinSock has to be made available for WinRT.
We’re happy to announce that starting with Visual Studio 2013 Update 3, the Windows App Certification Kit will allow use of WinSock APIs in your Windows Store apps. WinSock was already available on Windows Phone, so this work completes the story. Now WinSock is available universally.
This enables several great WinSock-dependent libraries for Windows Store:
Libwebsockets is a lightweight pure C library built to use minimal CPU and memory resources, and provide fast throughput in both directions. NuGet packages for Windows Phone are available here. MS Open Tech will release libwebsockets packages for Windows Store apps as well.
libcURL is a free, open source client to get documents/files from servers, using a variety of supported protocols. NuGet packages for Windows Phone are available here. MS Open Tech will release libcURL packages for Windows Store apps as well.
OpenSSL is a popular toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. We have made contributions to OpenSSL library to make in work for Windows Phone and Windows Store apps. You can find our fork of OpenSSL that supports Windows Phone and Store apps here. Please note that we are working with OpenSSL Foundation team to get our pull request reviewed and accepted to the OpenSSL repository.
While OpenSSL enables you to re-use your existing cross-platform code, you can also use the Windows Security and Cryptography APIs (namespace: Windows.Security.Cryptography*) which provide secured communication features natively in WinRT, when you decide to rewrite your code or build new Windows apps.
We hope you find this new support useful as you’re building your apps.
Are there other libraries or functionality that you need? Let us know in the comments.