RESTinio-0.4
2017.12.27
Рады представить очередной релиз RESTinio. RESTinio — это header-only, кросс-платформенная библиотека для встраивания HTTP сервера в С++ приложение, которая также включает в себя удобный express-like маршрутизатор и поддерживает websocket-ы.
Список изменений:
- Переделан механизм контроля таймаутов, теперь расходы на контроль таймаутов практически не сказываются на производительности.
- Express router: введена концепция regex-engine, которая позволяет использовать в качестве движка различные имплементации регулярных выражения (кроме std, например, PCRE/PCRE2).Например можно использовать библиотеку PCRE.
using router_t = restinio::router::express_router_t< restinio::router::pcre_regex_engine_t >; auto router = std::make_unique< router_t >(); router->http_get( "/:id(\d{8})/:tag", []( auto req, auto params ){ // Handle request. } ); // Add more routes ...
- Express router: добавлены функции для конвертации значений параметров в нужный пользователю тип (если такая конвертация возможна).
- Express router: параметры маршрута (route_params_t) теперь представляются в виде string_view.
- Express router: обновлен алгоритм парсинга маршрутов, чтобы соответствовать проекту path-to-regexp
- Express router: добавлена возможность установить обработчик для запросов, для которых не было найдено маршрута.
- Express router: добавлен бенчмарк для работы маршрутизатора на заданном наборе маршрутов (задаются в файле), что позволяет быстро оценить расходы на работу маршрутизатора на данном наборе маршрутов (подробнее тут).
- Улучшение разбора query string. Результаты хранятся в виде string_view объектов, требуя меньше памяти и аллокаций.
- Добавлены бенчмарки для серверов с одним обработчиком.
- Добавлена поддержка cmake для тестов и примеров, завязанных на SObjectizer.
- Документация переместилась сюда.