All Versions
10
Latest Version
Avg Release Cycle
124 days
Latest Release
2401 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
      values
    • 🛠 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