Fix: usage of CreateFileA on Windows instead of CreateFile.
Fix: sendfile operation on Windows closes the file twice.
Fix: tracking beacon in URL wasn’t handled properly.
Fix: sendfile operation on Windows opens a file in exclusive mode.
Semicolon is now supported as parameters separator in URI.
Support for “web beacon” and query_string_params_t::tag() method.
Function parse_query is a template now, special trait types
restinio::parse_query_traits::restinio_defaults and
restinio::parse_query_traits::javascript_compatible.
Add support for header fields in Provisional Message Header Field Names (from here).
Introduce safer interface for http_header_field_t using getters/setters. This involves a little incompatibility with prior versions if previously data members were accessed directly because now they a private.
Add base_response_builder_t::append_header(http_header_field_thttp_header_field) header field setter.
Enhance sendfile_t with file meta information (see File meta).
Add restinio::make_date_field_value() functions to format Date header fields (e.g. Fri,15Jun201813:58:18GMT).
Introduce restinio::http_status_line_t and a bunch of accompanying stuff, so now a standard response code and reason phrase can be set easily (see Status line).
Express router: regex engine. Introduce a concept of regex engine, so express router can run on pcre/pcre2 engines or the one provided by user (Regex engines).
Express router: route DSL. Update route to regex processing in order to stick with path-to-regexp project.
Express router: route params using string_view. Getting rid of using strings for storing parameters keys and values in route_params_t and using string_view (std::string_view if available).
Express router: route params casting. Introducing functions for converting route parameters to a specific type if the conversion is available (Casting parameters).
Express router: non matched request handler. A handler for non matched request can be set (Non matched request handler).
Express router: benchmark. Add a benchmark for testing performance on a given set of routes (described in file).
Improve query string params. Parsed parameters stored as string_view objects, thus requiring less space and less allocations.
Add cmake support for SObjectizer. Test and samples that depend on SObjectizer included to cmake scripts.
Add benchmarks. Add restinio benchmarks to repository.
Timer manager concept. Redesign timers. Introduce a concept of timer manager, that substitutes former timer factory concept.
0.3.0
Running server simplification. Add functions to deal with boilerplate code to run the server in simple cases.
Improve internal design. Redesign server start/stop logic.
Web Sockets. Basic support for Web Sockets.
Acceptor options. Custom options for socket can be set in settings.
Separate accept and create connection. Creating connection instance that involves allocations and initialization can be done in a context that is independent to acceptors context.
Concurrent accept. Server can accept several client connections concurrently.
Add uri helpers. A number of functions to work with query string see uri_helpers.hpp.
0.2.2
Improve header fields API. Type/enum support for known header fields and their values.
TLS support. Sopport for HTTPS with OpenSSL.
External buffers. Support external (constant) buffers support for body and/or body parts.
0.2.1
Routers for message handlers. Support for a URI dependent routing to a set of handlers (express-like router).
Bind localhost aliases. Accept “localhost” and “ip6-localhost” as address parameter for server to bound to.
0.2.0
Chunked transfer encoding. Support for chunked transfer encoding. Separate responses on header and body chunks, so it will be possible to send header and then body divided on chunks.
HTTP pipelining. HTTP pipelining support. Read, parse and call a handler for incoming requests independently. When responses become available send them to client in order of corresponding requests.
0.1.0
Address binding. Bind server to specific ip address.
Timeout control. Enable timeout guards for operations of receiving request (read and parse complete request), handling request, write response.
Logging. Support for logging of internal server work.
ASIO thread pool. Support ASIO running on a thread pool.