A small asynchronous application framework based on Boost/Asio, with components that can be reused accross different projects.
Requires C++20.
It is divided in packages depending on the type of functionality offered:
kouta::base): Provides the basic building blocks for the application (event loop access and callbacks)kouta::io): Provides I/O related functionalitykouta::utils): Provides useful utilitiesKouta requires the following libraries:
3.181.74.01.18.0 (if standalone Asio is used via the KOUTA_STANDALONE_ASIO option)The library can be built statically or as a shared library (configurable via the KOUTA_BUILD_SHARED). In addition, there are targets exposing a header-only interface, which may be identified by the suffix -header.
Documentation can be built with Doxygen:
The resulting HTML documentation can be found in docs/html.
Tests are implemented using GoogleTest and can be compiled after enabling the KOUTA_BUILD_TESTS option in CMake
The above command will result in the binaries build/tests/kouta-tests and build/tests/kouta-tests-header respectively, which can be executed to run all the test cases.