All Versions
Latest Version
Avg Release Cycle
124 days
Latest Release
2135 days ago

Changelog History

  • v3.0.0-rc2 Changes

    November 25, 2017

    ๐Ÿ’ฅ Breaking change:

    • Server::Request::remote_endpoint_address and Server::Request::remote_endpoint_port
      ๐Ÿ›  are now functions to reduce unnecessary instructions. Also fixed issue with the
      previous variables that were not correctly set.

    Noteworthy changes:

    • ๐Ÿ”’ Replaced readers-writer lock with a spinlock for stopping handlers
    • โž• Added noexcept keyword to functions
    • โž• Added gcc and clang flag -Wsign-conversion
    • โž• Added client support for Server Name Indication
    • ๐Ÿšš Fully removed boost dependency when standalone ASIO is used
    • โž• Added HttpHeader::parse to utility.hpp
    • โž• Added status code tests
    • Modernized all CMakeLists.txt files, and made it easier to use
      ๐ŸŒ Simple-Web-Server as a sub-project
    • โž• Added HttpHeader::FieldValue::SemicolonSeparatedAttributes::parse. This
      ๐Ÿ“œ function can be used to parse Set-Cookie and Content-Disposition header field
    • ๐Ÿ›  Fixed compilation issue on Debian Jessie when standalone ASIO is used
    • ๐Ÿ›  Fixed compilation issue for systems using older versions of OpenSSL
    • โšก๏ธ Optimized the status_code-functions
    • โž• Added MSVC support to cmake files (not tested). Some tests are disabled due to
      lacking MSVC options.
    • โž• Added chunked transfer encoding support for incoming requests to server, in
      โž• addition to cleanup of chunked transfer encoding functions.
    • Client can now send chunked transfer encoded content
  • v3.0.0-rc1 Changes

    July 15, 2017

    ๐Ÿ’ฅ Breaking changes:

    • Server::Request::path is now split into path and query_string. This means that for instance server.resource["/info$"]["GET"] will match both GET /info HTTP/1.1 and GET /info?a=b HTTP/1.1 requests.
    • ๐Ÿšš Server::send has been moved to Server::Response::send
    • ๐Ÿšš Deprecated functions has been removed

    Notable changes:

    • ๐Ÿ‘ Standalone Asio is now supported
    • ๐Ÿ– Handlers are now safely canceled on Client and Server destruction. This is especially useful when using an external io_service
    • A major restructuring of the source code
    • โž• Added convenience write functions to Server::Response
    • โž• Added asynchronous client request functions
    • ๐Ÿ‘ Client now supports parallel requests
    • Client now attempts to reconnect timed out connections
    • โž• Added convenience Client::Response::Content::string() function
    • โž• Added Status Code header with convenience functions to create and read status codes
    • โž• Added function to create query string in addition to query string parsing
    • โž• Added Client::stop
    • Server::stop now closes current connections
  • v2.1.1 Changes

    June 10, 2017

    Various improvements and cleanups, most notably:

    • ๐Ÿ›  Fixed Client proxy requests
    • โž• Added client verification when a verify file is passed to Server
    • Added session_id_context for session reuse
    • Server errors are now passed to an on_error std::function if set
    • โž• Added crypto.hpp for convenient C++ wrappings for commonly used OpenSSL functions
    • ๐Ÿ—„ Cleanup of server-constructors. Previous constructors have been marked as deprecated
    • โž• Added on_upgrade std::function for cases where one wants to handle connection upgrades by another library, for instanace Simple-WebSocket-Server
    • โฑ Timeout can now be set for Client requests
    • ๐Ÿ‘ Client now supports Connection: close
    • โž• Added support for request header Connection: keep-alive in Server
    • Added Server::Request::parse_query_string()
  • v2.1 Changes

    December 14, 2016

    ๐Ÿ”’ Important: security fix for Client: added host verification

    Other improvements:

    • โž• Added threaded heavy work example
    • โž• Added io_test and CI
    • โž• Added install target
    • Replaced class visibility private with protected
    • ๐Ÿ‘ฎ Force TLS 1.2
    • โž• Added exception handler to handle exception throws in Server
    • Less copies of shared_ptr objects
    • Possibility to set or reuse boost::asio_ioservice
    • ๐Ÿ‘‰ Use of std::regex with clang and g++ if possible
    • ๐Ÿ‘Œ Improvement of default_resource example
    • โฑ Timeout can be set on client requests
    • ๐Ÿ›  Various MSVS fixes
    • โž• Added proxy server support to Client
    • ๐Ÿ›  Various minor bug fixes.
  • v2.0 Changes

    June 29, 2016
    • Request handling is now asynchronous, and thus more flexible towards various threading strategies.
    • โž• Added extra warning flags

    โšก๏ธ This version is not backwards compatible with previous versions. See the updated examples.

  • v1.4.2 Changes

    April 23, 2016
    • โž• Added Connection: close request header support
    • HTTP headers are now case-insensitive
    • 0๏ธโƒฃ Cleanup of default_resource example
  • v1.4.1 Changes

    December 09, 2015

    Most significant improvements:

    • Compiles with gcc4.8
    • โž• Added configuration options
    • ๐Ÿ›  Bugfixes when receiving nonstandard requests
  • v1.4

    September 08, 2015
  • v1.3.3

    January 30, 2015
  • v1.3.2

    November 02, 2014