https://github.com/vbe0201/boros
A Python library for asynchronous I/O with io_uring
https://github.com/vbe0201/boros
async io iouring networking python
Last synced: 5 months ago
JSON representation
A Python library for asynchronous I/O with io_uring
- Host: GitHub
- URL: https://github.com/vbe0201/boros
- Owner: vbe0201
- License: isc
- Created: 2025-10-08T12:27:46.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2026-01-18T18:37:37.000Z (5 months ago)
- Last Synced: 2026-01-18T22:13:45.136Z (5 months ago)
- Topics: async, io, iouring, networking, python
- Language: C
- Homepage:
- Size: 288 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# boros
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.
## System Requirements
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.
## Development
It is recommended to set up a developemnt environment with [Meson](https://mesonbuild.com),
[Python 3.12+](https://www.python.org), and [uv](https://docs.astral.sh/uv).
[just](https://github.com/casey/just) is used as a command runner for
convenience, it is recommended but not strictly required.
### Quick Start
Create a virtual environment for development and install a debug build
of boros to it:
```bash
uv venv
# Defaults to debug builds unless the BOROS_BUILD_MODE
# environment variable is set to release.
just sync
```
And you should be all set! Use commands like `just lint`, `just format`,
`just ty` to assist your development workflow and use `just run` as a
wrapper to `uv run` which preserves the current build configuration.
## License
This library is licensed under the terms of the ISC License.