rio
cachegrand
rio | cachegrand | |
---|---|---|
7 | 24 | |
894 | 963 | |
- | - | |
0.0 | 8.0 | |
almost 2 years ago | 6 months ago | |
Rust | C | |
- | BSD 3-clause "New" or "Revised" License |
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.
rio
-
Production grade databases in Rust
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
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
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?
for completeness there is also rio, but:
-
Comparing the Rust uring libraries (tokio-uring, glommio, rio, ringbahn)
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
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
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
cachegrand
-
C++ caching library with tiering (RAM + disc)
Closest that comes to my mind is CacheGrand. It doesn’t have some of the features yet, but I believe @daniele_dll is working on it!
-
[PC][Switzerland] Cheap Rackspace
I use this HW for benchmarking and testing my open source project cachegrand ( https://github.com/danielealbano/cachegrand)
- cachegrand
-
Cachegrand, a fast, Redis compatible, KV store – hashtable documentation
https://github.com/danielealbano/cachegrand/blob/main/docs/a...
When tested with memtier_benchmark, using the Redis protocol, cachegrand itself, on the benchmarking hardware, thanks to the implemented hashtable can reach up to 5 million GET op/s and up to 4.5 million UPSERT op/s without batching, with it up to 60 million GET op/s and up to 26 million UPSERT op/s!
- cachegrand - a blazing fast, Redis compatible, Key-Value store builf for today's hardware - hashtable documentation - capable of delivering up to 112 GET mop/s and 85 UPSERT mop/s on a EPYC 7502P
- Show HN: Cachegrand – a fast OSS Key-Value store built for modern hardware
- Cachegrand – a modern OSS Key-Value store built for today's hardware
What are some alternatives?
io_uring-echo-server - io_uring echo server
dragonfly - A modern replacement for Redis and Memcached
smol - A small and fast async runtime for Rust
varnish-cache - Varnish Cache source code repository
KuiBaDB - Another OLAP database
examples - Example data structures and algorithms
fio - Flexible I/O Tester
midi-redis - A toy memory store with great performance
kbio - Another Async IO Framework based on io_uring
async-std - Async version of the Rust standard library
webdis - A Redis HTTP interface with JSON output