Simple-Web-Server v3.0.0-rc2 Release Notes

Release Date: 2017-11-25 // over 3 years ago
  • ๐Ÿ’ฅ 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

Previous changes from v3.0.0-rc1

  • ๐Ÿ’ฅ 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