boros is a Python library for asynchronous I/O based on the io_uring API.
It features a friendly API for writing concurrent applications based on async/await with a focus on performance and usability.
Warning
boros is currently in its early stages and not yet ready for practical use. Expect to encounter bugs, missing features, and API breakage anytime.
boros targets Linux kernels starting from version 6.1 and newer.
The implementation makes an effort to be correct even when run on older kernels, but fatal exceptions will be raised.
Likewise, we will support many of the more recent io_uring features with
a documentation hint to the required kernel version. Attempting to use any
library features with an outdated kernel will also result in exceptions
being raised.
If you want to work on boros directly, it is recommended to set up a development
environment with Meson, Python 3.12+,
and uv. If you use Nix,
a flake with a development shell and a boros package output is provided.
If you want clangd language server support for the C++ portions of the codebase, run the following command from the project root:
meson setup buildThis will create the Meson build cache with a compile_commands.json file in
the build/ directory, which is where clangd searches for it by default.
Next, you will want a virtual environment for development:
uv venv
source .venv/bin/activateTo reinstall the boros library to your venv when you want to test a change,
run the following command:
uv sync --reinstall-package boros