This repository has been archived by the owner on Jun 12, 2018. It is now read-only.
Releases: eidheim/Simple-Web-Server
Releases · eidheim/Simple-Web-Server
v3.0.0-rc2
Breaking change:
Server::Request::remote_endpoint_address
andServer::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
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
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
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.