Coroutine-first
RTNETLINK for
modern C++.
RTACO (RTnetlink Asio COroutines) is a small, focused control-plane library for Linux. Boost.Asio awaitable APIs for NETLINK_ROUTE transactions and kernel notifications — links, addresses, routes, neighbors.
// dump kernel routes
boost::asio::io_context io;
llmx::rtaco::Control ctl{io};
// std::expected<...,
// std::error_code>
auto routes = ctl.dump_routes();
llmx::rtaco::Listener ls{io};
ls.connect_to_event(
[](const RouteEvent& ev) { ... });
ls.start();
io.run();Built for the control plane.
Every component is shaped around the constraints of netlink — strict typing, predictable lifetimes, and zero hidden allocations on hot paths.
Tight scope — NETLINK_ROUTE transactions and notifications. No dataplane, no abstractions.
Every operation has an async_* awaitable variant. Compose with co_await in your io_context.
Subscribe to LinkEvent, AddressEvent, RouteEvent, NeighborEvent through Listener::connect_to_event.
Errors flow as std::error_code. No exceptions across API boundaries.
ExecPolicy::Sync runs handlers inline; ExecPolicy::Async posts onto the executor.
find_package(llmx-rtaco CONFIG REQUIRED) and link llmx::rtaco. Done.
Build, link, run.
Configure with CMake + Ninja, install, and consume from your own CMake target. The full quickstart lives in the docs.
Open quickstart →$ cmake -S . -B build -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DRTACO_BUILD_EXAMPLES=ON
$ cmake --build build
$ cmake --install build