Hi Daniel (sorry for not answering in time on irc) they like to change SONAME at each release, to move files between releases, but honestly I didn't see any notable new feature (something for android). I guess it is mostly bug fix only. release notes for 2.3.0 http_client Implemented server certificate verification on Android. #242 Added usage of Boost ssl::context::default_workarounds for compatibility with somewhat broken servers. Fixed issue with server certification verification if multiple requests are made on iOS, OS X, and Android. Remove unnecessary setting of Content-Length header in HTTP requests to zero. Updated documentation for http_request default constructor and made default to the HTTP GET method to avoid ambiguity. #273 For sending request bodies added overloads on Windows for directly working with UTF-8 strings. This saves copies and extra moves on many platforms. Fixed several issues around timeouts and cancellation with the Boost based implementation. Also addressed several places timeouts weren't being handle properly. #280 Improved error messages with WinHttp based implementation to include error code and message in the exception what() string. Fixed an issue where a blocking wait was being used to close the response stream and any exceptions coming out of the returned task were not handled. websocket_client All of the websocket features have been moved out of the experimental namespace. Implemented 'wss' support for Android/iOS/OSX/Linux/Windows desktop. #255 HTTP headers for initial HTTP request can be specified now on the non-winrt implementation as well. #251 Added subprotocol API support. New APIs exist on websocket_client_config class. 206 Added overloads for websocket_outgoing_msg::set_utf8_message() and websocket_outgoing_msg::set_binary_message() which allows the user to not specify stream length. #152 Poco is no longer used as test server for WinRT tests, Websocketpp is used in all cases. #221 Improved parameter passing in many locations, adding r-value references for string message data. Improved error messages with both the websocketpp and winrt implementations. Updated websocketpp library to 0.3.0 version. Added a Visual Studio visualizer for websockets. #120 Fixed spelling mistake on an API. Renamed websocket_incoming_message::messge_type() to websocket_incoming_message::message_type(). Storage improvements on websocket message classes. Saving a heap allocation, a pointer, and a size_t. Fixed connection abort\disconnect issue in winrt implementation. #181 http_listener Initiating multiple close() calls on an http_listener no longer results in a race condition. Note: ~http_listener does invoke close(), even though the user should close it before destruction. #192 streams Writing to standard C++ I/O streams with read_to_end() will now throw an exception if it fails. #244 Fixed reading files larger than 4GB on Windows, if on 64bit. #161 Including the streams.h header file no longer injects a specialization into std::. #125 Fixed several places that could cause blocking waits. #135 Removed an unnecessary size_t from container buffer, saving space. json Adding the ability to perform exception free parsing. All the parsing APIs now take a std::error_code as a second parameter by reference. Fixed issues around JSON library assuming the current local is "C". #118 Added overload when constructing json string values to indicate whether or not the string contains any characters that need to be escaped. If the string is known to not contain any characters that need escaping, then the performance is better. Fixed issue with Unicode escaping for code points over 127. #252 misc The run_tests.sh script has been removed. The tests can be run by invoking the testrunner directly. #182 Various reference documentation improvements. Updated .gitignore to account for NuGet packages directory. #282 Passwords are now stored in memory encrypted. The API web::credentials::password() has been deprecated. Renamed some folders to use lower case names. Windows Added support for Visual Studio 2015 for desktop applications. #278. Please note websockets are not included with Visual Studio 2015 yet. Added support for Windows Phone 8.1 Silverlight. #227 Fixed issue with the XP project file not loading correctly in the solution. #262 Visual Studio project files have there packages.config separated out, only pulling in the exact NuGet packages necessary for that project now. #285 Added OpenSSL as a new dependency on Windows desktop, for secure websockets. Due to the unconditional dependency this causes the OpenSSL dlls by default to be included in the Windows Store app package. There are a variety of ways to temporarily to work around this issue. The vcxproj file can be directly edited to remove importing the OpenSSL targets file. Or the NuGet package can be installed from the using the NuGet package manager console to avoid the dependencies: Install-Package -Id cpprestsdk -IgnoreDependencies Android Updated to Android NDK r10. Moved from using gcc to clang. Moved to produce a static library as the default instead of a shared library. Added a NuGet package for cross platform development with Visual Studio 2015, currently only supporting the ARM architecture. iOS Updated iOS 8 SDK. Updated iOS build script to use a patch to fix the Boost version used to be 1.56. -------------- release notes for 2.4.0 oauth Fixed memory leak with OAuth 1 in the success case. #321 OAuth1 added support for parameters in POST request body if Content-Type is application/x-www-form-urlencoded. OAuth1 fixed some parameters which were incorrectly encoded twice. OAuth1 added support for additional provider parameters on the token. websocket_client Added a new websocket_client class, websocket_client_class, that supports using callbacks instead for receiving messages and when the connection is closed. #15 Fixed issues around the websocket_client destructor taking the loader lock causing hangs/crashes if dynamically loading/unloading in a dll at runtime on Windows. #309, #233 Fixed memory leaks coming from OpenSSL when using secure websocket client. http_client Fixed http_client constructor taking parameters by value and performing a lot of moves and sometimes copying again. Now everything cleaner is passed by const reference. In the future if performance critical another overload can be added. Removed unnecessary exception_ptr stored per request on all but WinRT platforms, saving space. Misc cleanup in asio based http_client, renaming classes to not contain 'linux', making more data/methods private, removing some unnecessary usage of shared_ptr parameters and unnecessary indirection. Fixed memory leak in asio based http_client with 'https' requests. #326 Fixed race condition in asio based http_client when obtaining a connection from the connection pool. #320 Deprecated http_client_config::set_guarantee_order(...) option. It is confusing and simplifies the implementation if removed. If request ordering is a requirement it can always be done manually with task continuations. In the future a better option to expose would be to configure the max number of allowed concurrent connections. Fixed an issue in Boost based http_client where connections that encounter an error were being pooled for reuse. Now all connections that hit any errors are properly shutdown and closed. http_listener Updated to Boost based implementation to include underlying Boost error code in exceptions. #224 Updated a bunch of parameters in Boost based implementation to pass by const reference instead of by value. Fixed problem in Boost based implementation where if an error occurred while processing the request body then the event from http_request::content_ready() won't be signaled. #220 uri Fixed issue with uri_builder not including user information when calling to_string() and to_uri(). #329 json Fixed a small memory leak in locale support for json library. miscellaneous Moved all the non public headers under the cpprest include folder into a details subfolder. Removed a bunch of unnecessary pragma warning suppressions. This removes a ton of warnings when using Clang. Renamed a bunch of source files to better reflect their contents. For example http_linux.cpp is now http_client_asio.cpp. Cleaned up and combined the *_compat.h header files into one more manageable file making it easier to share settings. Removed a bunch of unnecessary macros/defines. Public API code documentation improvements for reference docs. Fixed a conversion bug in datetime::utc_now() causing the seconds to be off potentially by 100 nanoseconds. Added /detectleaks option for TestRunner when running on Windows. Windows Updated all the solution files to use the VS2013 shared projects feature. With this change all the source code is present in the IDE regardless of the platform. Now it is easier to develop in VS for other platforms as well. Removed the _MS_WINDOWS macro, _WIN32 should be used instead. Updated NuGet package to include CPPREST_TARGET_XP define if targeting XP, otherwise http_client_config size mismatches can occur leading to crashes. Fixed an issue with _PHONE8_ define causing problems if not defined when targeting Windows Phone 8. The macro has now been removed. We now statically link with OpenSSL on Windows and so our NuGet package no longer has the OpenSSL dependency. This makes deployment easier for customers. #308 Worked around a VS2015 compiler devirtualization bug causing AVs, using /d2notypeopt. #314, #315 Changed name of powershell VS setup script for VS2015. Android Added Android vcxproj files for Visual Studio and included them in the solution files. Fixed incorrect _M_ARM macro check that lead to websockets being excluded on Android. Added support for the Windows x86 emulator. Android NuGet package now contains binaries for it as well. Fixed lots of warning with Clang, turned on treating warnings as errors when building on Windows. #323 Added vxproj files for tests and an Android test runner. iOS Added a XCode unit test bridge to enable easily running tests for iOS. Can be used from command line with xcodebuild. #105