Skip to content
/ rio Public

A c++23 async io framework built on top of linux io_uring

Notifications You must be signed in to change notification settings

Rrrinav/rio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rio

An async runtime based on liburing.

Warning

Doesn't use raw io_uring, I am using linux liburing abstraction layer/library. Single Threaded only.

Read requirments.

Building

$ g++ ./bld.cpp -o bld --std=c++23 && ./bld

You can find precompiled modules in ./bin/pcms/ & linking files/libs in ./bin/libs/

Follow instructions if bulding std module fails.

Requirements

  • Clang 21.1
    • basically modules and c++23 support
  • libc++
  • liburing

Usage

Import rio module

import rio
// Implementation

Compile

clang++ -o main main.cpp -std=c++23 -stdlib=libc++ -fprebuilt-module-path=./bin/pcms/ -fprebuilt-module-path=./bin/std/ -L./bin/libs/ -lrio  -luring
clang++ ./examples/04-future-echo-server.cpp -o main2 -std=c++23 ./bin/libs/librio.a -fprebuilt-module-path=./bin/pcms -fprebuilt-module-path=./bin/std -luring

Notes

  • If you are doing incremental builds and clang cries, try bld -build. This doesn't build std again.
  • If you want to compile std again too, do bld -build-all, but it will compile whole thing again.

Credits

rinav

Todo

  • Fix futures io functions.

About

A c++23 async io framework built on top of linux io_uring

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages