io_uring-echo-server VS rio

Compare io_uring-echo-server vs rio and see what are their differences.

rio

pure rust io_uring library, built on libc, thread & async friendly, misuse resistant (by spacejam)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
io_uring-echo-server rio
1 7
358 894
- -
3.6 0.0
4 months ago almost 2 years ago
C Rust
MIT License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

io_uring-echo-server

Posts with mentions or reviews of io_uring-echo-server. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-03-08.
  • Put an io_uring on it: Exploiting the Linux Kernel
    3 projects | news.ycombinator.com | 8 Mar 2022
    > Network IO discussion: https://github.com/axboe/liburing/issues/536

    I see an issue with a narrative but zero discussion at that link.

    Furthermore, your io_uring benchmark being utilized in that issue isn't even batching CQE consumption. I've submitted a quick and dirty untested PR adding rudimentary batching at [0]. Frankly, what seems to be a constant din of poorly-written benchmarks portraying io_uring in a negative light vs. epoll is getting rather old.

    [0] https://github.com/frevib/io_uring-echo-server/pull/16

rio

Posts with mentions or reviews of rio. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-04-21.
  • Production grade databases in Rust
    14 projects | /r/rust | 21 Apr 2023
    Also, not to be too bad about a reputation fallacy, but I found the author to be flippant and disrespectful when good-faith unsoundness was pointed out in his crates: https://github.com/spacejam/rio/issues/30
  • Linear Types One-Pager
    2 projects | /r/rust | 29 Mar 2023
    In my previous post on linear types I spent quite a bit of time motivating linear types. For example the ergonomic rio io_uring library could be made sound if it could guarantee destructors are run. Or performing FFI with async C++ could be made more efficient if it could rely directly on destructors rather than having to involve an intermediate runtime for each call.
  • The Stigma Around Unsafe
    5 projects | /r/rust | 12 Oct 2022
    It's like cargo should have a way to mark a dependency as unsafe. That way, you could have a safe mmap crate as an unsafe dependency. Or something like rio which is deliberately unsound (but is fine if you abide by its rules through the entirety of the program)
  • Anyone using io_uring?
    8 projects | /r/rust | 18 Aug 2022
    for completeness there is also rio, but:
  • Comparing the Rust uring libraries (tokio-uring, glommio, rio, ringbahn)
    1 project | /r/rust | 9 Nov 2021
    rio still has known soundness issues– its Completion futures block the thread when dropped (!!!), and can allow for use-after-free bugs if leaked. See https://github.com/spacejam/rio/issues/30 for details.
  • kbio - Another Async IO Framework based on io_uring
    5 projects | /r/rust | 21 Sep 2021
    Here are some posts about the design. https://without.boats/blog/io-uring/ https://github.com/spacejam/rio/issues/30 https://github.com/axboe/liburing/issues/109
  • Tokio, the async runtime for Rust, hits 1.0
    12 projects | news.ycombinator.com | 23 Dec 2020
    The author of sled[1], an embedded database in Rust which has a number of promising features, has also written parts of rio[2], an underlying pure Rust io_uring library, which is intended to become the core write path for sled. rio has support for files but also has a demo for TCP (on Linux 5.5 and later) and O_DIRECT.

    I tested rio recently as I had a Brilliant but Bad Idea™ involving file access and was pleasantly surprised by the API, as I have been with sled's.

    I'm excited for the experimentation in the Rust ecosystem and for such low level crates to handle the complex io_uring tasks (relatively) safely!

    [1]: https://github.com/spacejam/sled

    [2]: https://github.com/spacejam/rio

What are some alternatives?

When comparing io_uring-echo-server and rio you can also consider the following projects:

liburing

smol - A small and fast async runtime for Rust

python-c-io_uring-example - Using io_uring Linux Kernel interface from Python by JITing C code with MetaCall.

KuiBaDB - Another OLAP database

kbio - Another Async IO Framework based on io_uring

cachegrand - cachegrand - a modern data ingestion, processing and serving platform built for today's hardware

io-uring - The `io_uring` library for Rust

fio - Flexible I/O Tester

async_io_uring - An event loop in Zig using io_uring and coroutines

Polyphony - Fine-grained concurrency for Ruby

async-std - Async version of the Rust standard library