Releases: Stiffstream/restinio
v.0.7.3
v.0.7.2
v.0.7.1
v.0.7.0
This is the first significant release since v.0.6.13 and there are several breaking changes.
- Switch to C++17. Since v.0.7.0 RESTinio requires C++17 as the minimal C++ standard.
- Switch to nodejs/llhttp library for parsing HTTP requests. Previous versions of RESTinio used nodejs/http-parser, but it is now deprecated and no longer maintained. Since v.0.7.0 RESTinio uses nodejs/llhttp.
- No more external projects for optional, variant and string_view. After switching to C++17 RESTinio uses std::optional, std::variant and std::string_view. Note that for the
expected
class RESTinio still needs the expected-lite project as a dependency. - Switch to Catch2 v3. The Catch2 library is used in RESTinio for testing. The first versions of Catch2 were header-only, but since v3 the Catch2 needs to be compiled as a library. Since v.0.7.0 RESTinio uses Catch2 v3 and can’t be used with previous versions of Catch2 library.
- The Clara library is no longer used in RESTinio samples/tests/benchmarks. Parsing of command line arguments in some samples/tests/benchmarks becomes more simple and arguments with long names can’t be shortened now. It means that if
--address
is required then it can’t be specified as--addr
. - The RapidJSON/json_dto libraries are no longer used in RESTinio samples/tests/benchmarks.
- CMake is now the only build system supported. The previous versions of RESTinio used CMake and our own Mxx_ru build systems. Since v.0.7.0 only CMake is used. But Mxx_ru is still in use for managing dependencies.
- RESTinio's CMake scripts have been refactored significantly. Most of the old CMake variables/options used for the configuration (like
RESTINIO_FIND_DEPS
) have been removed. There are several new variables/options that have to be used since v0.7.0:RESTINIO_ASIO_SOURCE
,RESTINIO_DEP_STANDALONE_ASIO
,RESTINIO_DEP_BOOST_ASIO
,RESTINIO_DEP_LLHTTP
,RESTINIO_DEP_FMT
,RESTINIO_DEP_EXPECTED_LITE
and so on. Please see the corresponding section in the documentation for more details. - Several classes/methods/functions marked as deprecated in previous versions are now removed.
- The core
restinio/all.hpp
header file has been deprecated. It will be removed in v.0.8.0. The new corerestinio/core.hpp
header file must be used instead. - The format and behavior of
restinio::on_pool_runner_t::stop
changed. Now it may accept on_error-callback. The default on_error-callback callsstd::abort
if an exception is thrown inhttp_server_t::close_async
. - Added support of chains of asynchronous handlers. Please see the corresponding section in the documentation for more details.
- Added a basic support for chunk extensions in incoming requests.
v.0.6.19
v.0.6.18
v.0.6.17
Since v.0.6.17 RESTinio can be used with fmtlib in FMT_ENFORCE_COMPILE_STRING
mode. In this mode FMT_STRING
macro has to be used for format string in C++11/14/17 for compile-time checking of format string validity.
Now RESTinio checks the presence of FMT_ENFORCE_COMPILE_STRING
and uses FMT_STRING
when it's required.
NOTE. FMT_ENFORCE_COMPILE_STRING
has to be defined before inclusion of any of RESTinio's headers.
fmtlib-9.1.0 in now used inside RESTinio (and included in restinio-0.6.17-full.* archives).
v.0.6.16
This release adapts RESTinio to fmtlib-9.0.0.
Since v.0.6.16 RESTinio can be used with fmtlib-8 or fmtlib-9, but fmtlib-8 is still used in RESTinio development.
NOTE: restinio-0.6.14-full.* archives contain asio-1-21-1, fmt-8.1.1 and catch-2.13.9. Versions of 3rd party libraries in restinio/third_party updated to the latest versions:
expected-lite at commit 34524d46e538f1e6ed114d8f8409f7cd173d96e6.
optional-lite at commit ea502a6472c85dbc0174764df218a0c3443c6772.
string-view-lite at commit f7aca36f5caa05e451f6887aa707df89197e6de6.
variant-lite at commit f1af3518e4c28f12b09839b9d2ee37984cbf137a.
v.0.6.15
This is a maintenance release.
A fix for CMake script for case when RESTINIO_FIND_DEPS=ON
and RESTINIO_FMT_HEADER_ONLY=OFF
(#159).
Usage of std::aligned_storage_t
in implementation of writable_item_t
has been removed (it's deprecated in C++23).
In some places std::launder
is used (if available) to avoid UB accessing a pointer after placement new.
NOTE: restinio-0.6.14-full.* archives contain asio-1-21-1, fmt-8.1.1 and catch-2.13.9. Versions of 3rd party libraries in restinio/third_party
weren't upgraded.