A minimal event-driven async framework built directly on io_uring, exposing explicit frames, lifetimes, and continuations instead of coroutines.
| src | Improved codes reliability | |
| .gitignore | Improved codes reliability | |
| build.zig | First runnable example | |
| build.zig.zon | First runnable example | |
| LICENSE | Initial commit | |
| README.md | Improved codes reliability | |
RingFrame
A minimal event-driven async framework built directly on io_uring, exposing explicit frames, lifetimes, and continuations instead of coroutines.
This project is a small experimental async framework built directly on Linux io_uring.
It exposes async execution as an explicit event-driven state machine. IO lifetimes and user state lifetimes are modeled separately.
This repository is a work in progress. TODO comments document design questions and future improvements, and are kept intentionally.
How to run
Use following command to build and run a local cat-server build on this async framework, the default port is 54321.
git clone https://github.com/violeshnv/ringframe.git
cd ringframe
zig build run # or zig build run -- <port>
While the cat server is waiting for connection, open another terminal and run
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('localhost', 54321))
client.send(b'src/main.zig')
print(client.recv(1024).decode())
More
More information can be found in source codes' comments.