Skip to content

Releases: kamchatka-volcano/asyncgi

v0.6.0

Choose a tag to compare

@kamchatka-volcano kamchatka-volcano released this 12 Jun 14:10
  • Updated seal_lake to v0.2.0, now the CPM.cmake package manager is used to download dependencies. The variable CPM_SOURCE_CACHE can be set to an arbitrary directory to speed up CMake reconfiguration.

v0.5.0

Choose a tag to compare

@kamchatka-volcano kamchatka-volcano released this 21 Jan 12:12
  • Added asyncgi_fwd.h header with forward declarations
  • Made asyncgi::Error a class instead of a struct
  • BREAKING Placed the fastcgi namespace inside the asyncgi namespace

v0.4.0

Choose a tag to compare

@kamchatka-volcano kamchatka-volcano released this 04 Jan 20:52
  • BREAKING Renamed asyncgi::Response to asyncgi::Responder
  • BREAKING Removed asyncgi::Response::redirect() method.
    Now it's possible to create redirection responses ergonomically by using http::Redirect structure that can be passed to the http::Response constructor.
  • Request processors now support the http::Response(const asyncgi::Request&) signature, which is now the default and recommended way of using them. Examples and documentation have been updated accordingly.

v0.3.2

Choose a tag to compare

@kamchatka-volcano kamchatka-volcano released this 30 Sep 22:49
  • Removed an HTTP status header; now asyncgi can be used with webservers that consider FastCGI responses with this header malformed.

v0.3.1

Choose a tag to compare

@kamchatka-volcano kamchatka-volcano released this 30 Sep 22:45
  • Fixed the standalone installation of asyncgi by bundling fcgi_responder as an object library;

v0.3.0

Choose a tag to compare

@kamchatka-volcano kamchatka-volcano released this 23 Aug 22:05
  • BREAKING asyncgi::Router now depends on asyncgi::IO:
auto io = asyncgi::IO{};
auto router = asyncgi::Router{io};
  • BREAKING ErrorHandler was replaced with EventHandlerProxy - a flexible callback system allowing backwards-compatible extension.
    Currently only error event handlers are supported with the signature void(asyncgi::ErrorEvent, std::string_view);
    Event handler is passed as the last parameter to the asyncgi::IO object's constructor:
auto io = asyncgi::IO{[](asyncgi::ErrorEvent, std::string_view errorMsg){ std::cerr << errorMsg << "\n";}};

It's planned to add an optional logger based on this system in the future releases. The event handling will be documented then.

v0.2.0

Choose a tag to compare

@kamchatka-volcano kamchatka-volcano released this 12 Jul 20:11

This release is not backwards compatible with v0.1.0. Please refer to the README for detailed information about the new interface.

  • The asyncgi::App has been replaced with the asyncgi::IO service. The factory functions makeApp, makeServer, makeClient, makeTimer, and makeAsioDispatcher have been removed. Now, all entities are created on the stack and take a reference to an asyncgi::IO object in their constructors.

Before:

auto app = asyncgi::makeApp();
auto serverPtr = app->makeServer();

After:

auto io = asyncgi::IO{};
auto server = asyncgi::Server{io};
  • The asyncgi::RequestProcessor base class has been removed. Now, any callable with a compatible signature of void(const asyncgi::Request&, asyncgi::Response&) can be used for request processing.

  • The asyncgi::Router now allows passing regular expression capturing group values to the arguments of registered request processors.

router.route(asyncgi::rx{"/page/(\\d)")`).process([](int pageNumber, const asyncgi::Request&, asyncgi::Response&){ ... });

  • The route context is no longer embedded in the asyncgi::Response object. Instead, it is passed as the last argument to the request processor.
auto router = asyncgi::Router<Context>{};
router.route().process([](const asyncgi::Request&, asyncgi::Response&, Context& context){ ... });
  • The asyncgi::RouteSpecification has been renamed to asyncgi::RouteMatcher.
  • The TimerMode enum has been replaced with the startPeriodic() timer method.
  • Windows support has been added, along with functional tests and CI configuration.
  • Compatibility with Boost.Asio has been added.

v0.1.0

Choose a tag to compare

@kamchatka-volcano kamchatka-volcano released this 30 Aug 17:58

Initial release