Back at the //Build conference in April, I outlined our goals for the Windows 8.1 developer platform and summarized them in a post about Extending platform commonality through universal Windows apps. Those goals were as follows:
- Reach customers across phones, tablets, and PCs
- Deliver innovation that supports developer investments
- 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, we saw that many of them require native socket programming support for Windows Store apps. Previously, apps using WinSock APIs were blocked at certification by the Windows Store.
We’re happy to announce that starting with the release of Visual Studio 2013 Update 3 (download) in August, the Windows App Certification Kit (WACK) allows use of WinSock APIs in your Windows Store apps. And since WinSock was already allowed to pass certification on Windows Phone, this work completes the story. Now WinSock is available universally across Windows 8.1, Windows Phone 8.1, and universal apps.
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 it 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.