What’s New
cpp-netlib
0.13
- Lots of little fixes.
- Support for per-request SNI hostnames
- Fixes to chunk and content-length encoding.
- Changed default connection buffer size to 4K.
- Support for IPv6 and HTTPS.
- Example of large upload handling with the HTTP server.
- Depend on Boost.Asio again instead of standalone Asio.
- Added Visual Studio 2015 support.
- Update minimum Boost to 1.58. Always use shared libs from Boost.
cpp-netlib
0.12
- Added a code of conduct.
- Add TLS SNI hostname support in the HTTP Client options.
- Changes based on Coverity reports.
- Replace std::bind with lambdas.
- Use std::shared_ptr instead of boost::shared_ptr.
- Use standalone Asio instead of Boost.Asio.
- No Boost library (shared or static) dependencies.
- Use doxygen for documentation, integrated with Breathe to Sphinx.
- Require C++11 for builds, removes support for non-C++11 compilers.
- Update documentation for hello_world_server
- Use googletest for tests
- Fix XCode-generated debug binaries caused by URI parser complexity
- Remove synchronous client implementation.
- Remove support for connection keepalive (only supported in synchronous client).
- Disable SSLv3 by default.
- Use sanitisers in continuous integration (address and thread sanitiser).
- Update minimum Boost to 1.57. Always use shared libs from Boost.
cpp-netlib
0.11
v0.11.2
- Support a source_port setting for connections made by the client per-request.
- Allow using cpp-netlib without OpenSSL.
- Fix build breakage for Visual Studio 2015.
- Add more options for HTTP client use of SSL/TLS options/ciphers.
- Made client_get_timeout_test less flaky.
- Fixes to URI encoding issues with multibyte strings.
- Make cpp-netlib not crash on unstable networks.
- Allow parsing empty query parameters (#499).
- CMake build changes to simplify dependencies on cppnetlib-client-connections.
- Handle EOF correctly (#496).
- Fix fileserver example to chunk data correctly.
- Copy hostname to avoid dangling reference to a temporary request object. (#482)
- Catch exceptions in parse_headers to avoid propagating issues in parsing upwards.
- Fix some GCC warnings on signed/unsigned comparison.
- Support environment variable-based peer verification (via OpenSSL).
- Support IPv6 connections.
- Support certificate-based verification, and option to always verify hosts.
v0.11.1
- Add support for request timeouts.
- Build configuration fixes.
- Support for Travis CI in-project config.
- Make the response parser more flexible to support older/ad-hoc servers that don’t have standard format responses.
- Fix some instability in the client destructor.
- MSVC 2010 specific fixes.
v0.11.0
- Fix thread leak in DNS resolution failure (#245)
- Remove unsupported client_fwd.hpp header (#277)
- Remove support for header-only usage (#129) – this means that the BOOST_NETWORK_NO_LIB option is no longer actually supported.
- Deprecate Synchronous Client implementations (#279)
- Support streaming body chunks for PUT/POST client requests (#27)
- Fix non-case-sensitive header parsing for some client tags (#313)
- Remove unsupported Jamfiles from the whole project (#316)
- Add
make install
for Linux and OS X (#285)
- Fix incorrect Body processing (#69)
- Support chunked transfer encoding from HTTP responses (#86)
- Make OS X Clang builds use C++11 and libc++.
- Update Boost requirement to 1.54.0.
- Experimental Base64 encoding/decoding library (#287)
- Known test failure: OS X Xcode Clang 5.0 + Boost 1.54.0 + libc++ don’t play
well with Boost.Serialization issues, mitigate test breakage but
cpp-netlib-utils_base64_test
still fails in this platform. (#287)
- Provide a client option to always validate peers for HTTPS requests made by
the client. (#349)
- Back-port fix for #163 for improved URI parsing.
- Added support for client-side certificates and private keys (#361).
cpp-netlib
0.10
v0.10.1
- Documentation updates (#182, #265, #194, #233, #255)
- Fix issue with async server inadvertently stopping from listening when
accepting a connection fails. (#172)
- Allow overriding and ultimately removing defaulted headers from HTTP
requests. (#263)
- Add -Wall to the base rule for GCC builds. (#264)
- Make the server implementation throw on startup errors. (#166)
v0.10.0
- Added support for more HTTP status codes (206, 408, 412, 416, 507).
- Refactored the parser for chunked encoding.
- Fixed parsing chunked encoding if the response body has
<chunk>CLRF<hex>CLRF<data>
.
- Added librt dependency on Linux.
- Check the callback in the asynchronous client before calling it.
- Fixed issues #110, #168, #213.
cpp-netlib
0.9
v0.9.5
- Removed dependency on Boost.Parameter from HTTP client and server.
- Fixed for Clang error on Twitter example.
- Added source port to the request (HTTP server).
- Updated CMake config for MSVC 2010/2012.
- Now support chunked content encoding in client response parsing.
- Fixed bug with client not invoking callback when a request fails.
v0.9.4
- Lots of URI fixes.
- Fixed async_server’s request handler so it doesn’t make copies of the supplied handler.
- Fix for issue #73 regarding SSL connections ending in short read errors.
- Final C++03-only release.
v0.9.3
- URI, HTTP client and HTTP server are now built as static libraries (
libcppnetlib-uri.a
, libcppnetlib-client-connections.a
and libcppnetlib-server-parsers.a
on Linux and cppnetlib-uri.lib
, cppnetlib-client-connections.lib
and cppnetlib-server-parsers.lib
on Windows).
- Updated URI parser.
- A new URI builder.
- URI support for IPv6 RFC 2732.
- Fixed issues #67, #72, #78, #79, #80, #81, #82, #83.
- New examples for the HTTP client, including an Atom feed, an RSS feed and a
very simple client that uses the Twitter Search API.
v0.9.2
- Critial bug fixes to v0.9.1.
v0.9.1
- Introduced macro
BOOST_NETWORK_DEFAULT_TAG
to allow for programmatically
defining the default flag to use throughout the compilation unit.
- Support for streaming body handlers when performing HTTP client operations.
See documentation for HTTP client interface for more information.
- Numerous bug fixes from v0.9.0.
- Google, Inc. contributions.
v0.9.0
- IMPORTANT BREAKING CHANGE: By default all compile-time heavy parser
implementations are now compiled to external static libraries. In order to use
cpp-netlib
in header-only mode, users must define the preprocessor
macro BOOST_NETWORK_NO_LIB
before including any cpp-netlib
header.
This breaks code that relied on the version 0.8.x line where the library is
strictly header-only.
- Fix issue #41: Introduce a macro
BOOST_NETWORK_HTTP_CLIENT_DEFAULT_TAG
which makes the default HTTP client use tags::http_async_8bit_udp_resolve
as the tag.
- Fix issue #40: Write the status line and headers in a single buffer write
instead of two writes.
- More consistent message API for client and server messages (request and
response objects).
- Refactoring of internal implementations to allow better separation of concerns
and more manageable coding/documentation.
- Client and server constructors that support Boost.Parameter named parameters.
- Client and server constructors now take in an optional reference to a Boost.Asio
io_service
to use internally.
- Documentation updates to reflect new APIs.
cpp-netlib
0.8
- Updates to URI unit tests and documentation.
- More documentation, covering the HTTP Client and HTTP Server APIs
- Asynchronous HTTP Server that now supports running request handlers on a
different thread pool.
- An initial thread pool implementation, using Boost.Asio underneath.
- Adding a ready(...) wrapper to check whether a response object returned by
the asynchronous client in 0.7 already has all the parts available.
- Some attempts at lowering compile time costs.
cpp-netlib
0.7
- Radical documentation overhaul
- Asynchronous HTTP client
- Tag dispatch overhaul, using Boost.MPL
- HTTP Client Facade refactoring
- Bug fixes for HTTP 1.1 response parsing
- Minimized code repetition with some header macro’s
- Configurable HTTPS support in the library with
BOOST_NETWORK_ENABLE_HTTPS
cpp-netlib
0.6
- Many fixes for MSVC compiler
cpp-netlib
0.5
- An embeddable HTTP 1.1 server
- An HTTP 1.1 client upgraded to support HTTPS
- An updated URI parser implementation
- An asynchronous HTTP 1.1 client
- An HTTP 1.1 client that supports streaming function handlers