tokio-uring VS glommio

Compare tokio-uring vs glommio and see what are their differences.

tokio-uring

An io_uring backed runtime for Rust (by tokio-rs)

glommio

Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans. (by DataDog)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
tokio-uring glommio
28 29
998 2,835
2.8% 2.3%
4.1 6.8
about 2 months ago 6 days ago
Rust Rust
MIT License GNU General Public License v3.0 or later
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.

tokio-uring

Posts with mentions or reviews of tokio-uring. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-13.
  • tokio_fs crate
    2 projects | /r/rust | 13 Jul 2023
  • Use io_uring for network I/O
    11 projects | news.ycombinator.com | 12 Apr 2023
    While Mio will probably not implement uring in its current design, there's https://github.com/tokio-rs/tokio-uring if you want to use io_uring in Rust.

    It's still in development, but the Tokio team seems intent on getting good io_uring support at least!

    As the README states, the Rust implementation requires a kernel newer than the one that shipped with Ubuntu 20.04 so I think it'll be a while before we'll see significant development among major libraries.

  • Create a data structure for low latency memory management
    4 projects | /r/rust | 4 Dec 2022
    That's what the pool is for: https://github.com/tokio-rs/tokio-uring/blob/master/src/buf/fixed/pool.rs
  • Cloudflare Ditches Nginx for In-House, Rust-Written Pingora
    3 projects | news.ycombinator.com | 16 Sep 2022
    Tokio supports io_uring (https://github.com/tokio-rs/tokio-uring), so perhaps when it's mature and battle-tested, it'd be easier to transition to it if Cloudflare aren't using it already.
  • Anyone using io_uring?
    8 projects | /r/rust | 18 Aug 2022
    - Tokio suffers from a similar problem
  • redb 0.4.0: 2x faster commits with 1PC+C instead of 2PC
    5 projects | /r/rust | 26 Jul 2022
    Eg via tokio-uring.
  • Efficient way to read multiple files in parallel
    3 projects | /r/rust | 8 Jun 2022
    I strongly recommend you to look into io-uring and use async executors that take advantages of it: - tokio-uring (not recommended as it is still undergoing development) - monoio - glommio
  • Stacked Futures and why they are impossible
    1 project | /r/rust | 8 Jun 2022
    This is my thinking as well. Specifically, I realized that if you don’t use tasks, but rather futures and join, than structured concurrency just works out (at the cost of less efficient poll). In a single-threaded/thread-per-core runtime, tasks could have the same semantics as futures. Somewhat elaborated here: https://github.com/tokio-rs/tokio-uring/issues/81
  • How to use async Rust for non-IO tasks?
    2 projects | /r/rust | 20 Apr 2022
    There's a new API on Linux called io_uring that has performance benefits, but most executors don't use it yet, except executors meant specifically to harness the power of io_uring like tokio-uring and Glommio
  • Side effects of Tokio
    1 project | /r/rust | 19 Apr 2022
    Breaking it down a bit further- Rust's async is zero-cost, and there's no way to write faster equivalent code to the language construct in Rust (and presumably other LLVM languages). Tokio introduces abstractions over OS APIs (indirectly) and provides a runtime. The runtime isn't zero cost, but it is likely to be better optimized for "standard" situations than a homebrewed solution, and its primary competition is in the form of other large async runtimes. On the other hand, Tokio's IO routines are (AFAIK) about as well written as one can get with blocking OS APIs, and the only competitors in that space are projects like tokio-uring that use APIs more well suited for asynchronous usage.

glommio

Posts with mentions or reviews of glommio. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-13.
  • I want to share my latest hobby project, dbeel: A distributed thread-per-core nosql db written in rust
    3 projects | /r/rust | 13 Nov 2023
    I used glommio as the async executor (instead of something like tokio), and it is wonderful. For people wondering whether it's "good enough" or to use C++ and seastar (as I have thought about a lot before starting this project), take the leap of faith, it's fast - both in terms of run time and to code.
  • The State of Async Rust
    9 projects | news.ycombinator.com | 25 Sep 2023
    My understanding is you always need a runtime, somethings needs to drive the async flow. But there are others on the market, just not without the.. market domination... of tokio.

    https://github.com/smol-rs/smol looks promising simply for being minimal

    https://github.com/bytedance/monoio looks potentially easier to work with than tokio

    https://github.com/DataDog/glommio is built around linux io_uring and seems somewhat promising for performance reasons.

    I haven't played with any of these yet, because Tokio is unfortunately the path of least resistance. And a bit viral in how it's infected tings.

  • Learning Async Rust with Too Many Web Servers
    4 projects | news.ycombinator.com | 18 Aug 2023
    I think you missed one which is based on io_uring [1].

    In my benchmarks with a slightly tweaked version it was 2x faster than Nginx and and 30x faster than Python's SimpleHttpServer.

    [1] https://github.com/DataDog/glommio/blob/master/examples/hype...

  • How much reason is there to be multi-threaded in the k8s environment
    2 projects | /r/scala | 4 Jul 2023
    b) It's proven now e.g Seastar, Glommio that the fastest way to run a multi-threaded application is to have one instance with one thread pinned per CPU core. Then to have fibers/lightweight threads on top handling all of the asynchronous code. Your approach of lots of instances is the slowest so there will be a ton of unnecessary thread context-switching.
  • Why does Actix-web's handler not require Send?
    3 projects | /r/rust | 18 Jun 2023
    I assume Tokio itself, see e.g monoio or glommio, but also Seastar for C++.
  • How does async Rust work
    6 projects | /r/rust | 27 Apr 2023
    https://github.com/DataDog/glommio Rust thread per core library.
  • Use io_uring for network I/O
    11 projects | news.ycombinator.com | 12 Apr 2023
    > Few of us have really figured out io_uring. But that doesn't mean it is slower.

    seastar.io is a high level framework that I believe has "figured out" io_uring, with additional caveats the framework imposes (which is honestly freeing).

    Additionally the rust equivalent: https://github.com/DataDog/glommio

  • Is async runtime (Tokio) overhead significant for a "real-time" video stream server?
    5 projects | /r/rust | 8 Mar 2023
    This use case is perfect for https://github.com/DataDog/glommio which is a thread-per-core runtime that is appropriate for latency sensitive code.
  • Blessed.rs – An unofficial guide to the Rust ecosystem
    8 projects | news.ycombinator.com | 7 Nov 2022
    It's worth mentioning: Under "Async Executors", for "io_uring" there is only "Glommio"

    I recently found out that ByteDance has a competitor library which supposedly has better performance:

    https://github.com/bytedance/monoio

    https://github.com/DataDog/glommio/issues/554

  • Building a High-Performance DB Buffer Pool in Zig W\ Io_uring New Fixed-Buffers
    4 projects | news.ycombinator.com | 15 Oct 2022
    FYI, Datadog has a Rust library for scheduling things to run thread-per-core with io_uring

    It'd be really useful for DB use cases:

    https://github.com/DataDog/glommio

What are some alternatives?

When comparing tokio-uring and glommio you can also consider the following projects:

libuv - Cross-platform asynchronous I/O

tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...

liburing

Seastar - High performance server-side application framework

monoio - Rust async runtime based on io-uring.

MIO - Metal I/O library for Rust.

diesel_async - Diesel async connection implementation

actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

rust-analyzer - A Rust compiler front-end for IDEs [Moved to: https://github.com/rust-lang/rust-analyzer]

shadowsocks-rust - A Rust port of shadowsocks