Simple-Web-Server v3.0.0-rc2 Release Notes
Release Date: 2017-11-25 // almost 7 years ago-
๐ฅ 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
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