Skip to content
This repository has been archived by the owner on Jun 12, 2018. It is now read-only.

Releases: eidheim/Simple-Web-Server

v3.0.0-rc2

25 Nov 11:18
Compare
Choose a tag to compare
v3.0.0-rc2 Pre-release
Pre-release

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

15 Jul 13:36
Compare
Choose a tag to compare
v3.0.0-rc1 Pre-release
Pre-release

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

10 Jun 09:28
Compare
Choose a tag to compare

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

14 Dec 17:18
Compare
Choose a tag to compare

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

29 Jun 08:38
Compare
Choose a tag to compare
  • 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

23 Apr 09:17
Compare
Choose a tag to compare
  • Added Connection: close request header support
  • HTTP headers are now case-insensitive
  • Cleanup of default_resource example

v1.4.1

09 Dec 13:55
Compare
Choose a tag to compare

Most significant improvements:

  • Compiles with gcc4.8
  • Added configuration options
  • Bugfixes when receiving nonstandard requests

v1.4

08 Sep 08:33
Compare
Choose a tag to compare
Response stream now subclass std::ostream. Also some cleanup of defau…

…lt_resource example.

v1.3.3

30 Jan 16:38
Compare
Choose a tag to compare
Update README.md

v1.3.2

02 Nov 11:30
Compare
Choose a tag to compare
renamed #define CLIENT_WS_HPP and CLIENT_WSS_HPP to CLIENT_HTTP_HPP a…

…nd CLIENT_HTTPS_HPP.