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.
exmap
-
Are You Sure You Want to Use MMAP in Your DBMS?
> buffers in user space is really immature and needs some better performing API so that we have something in between mmap and buffer management.
If you don't know about it already, you should look at Viktor Leis' et al's work on this -- kernel module + supporting buffer mgmt code to do the kind of thing you're talking about. The code is not production quality, but the idea is nifty:
https://github.com/viktorleis/vmcache
https://github.com/tuhhosg/exmap
https://www.cs.cit.tum.de/fileadmin/w00cfj/dis/_my_direct_up...
I've personally experimented a bit with userfaultfd and this kind of thing, but it's got issues.
redb
-
Are You Sure You Want to Use MMAP in Your DBMS?
I wrote redb (https://github.com/cberner/redb) using mmap, initially. However, I later removed it and switched to read()/write() with my own user space cache. I'm sure it's not as good as the OS page cache, but the difference was only 1.2-1.5x performance on the benchmarks I cared about, and the cache is less than 500 lines of code.
-
struct_db 0.4.0
exposure of the redb builder functionalities.
-
redb (safe, ACID, embedded, key-value store) 1.0 release!
redb has reached its 1.0 release. The file format is now gauranteed to be backward compatible, and the API is stable. I've run pretty extensive fuzz testing, but please report any bugs you encounter.
-
RFC: redb (embedded key-value store) nearing version 1.0
I'm just now updating the benchmarks in the readme with multi-threaded workloads :) https://github.com/cberner/redb/pull/576
-
Best local database that works on all platforms including web?
redb, but that doesn't have a stable file format yet,
-
What do you recommend for conflict-free replicated data type (CRDT) support in Rust?
I also have to support web, so I'm considering a hybrid approach with a direct IndexedDB API there and something like sqlite, percy, sanakirja, or redb on native.
-
Some key-value storage engines in Rust
Nice list, but don’t forget persy, redb and sanakirja too!
-
Are there a demand for management system of embedded storage like RocksDB? I plan to build one in Rust as the language becoming a core of many popular databases but wonder if there’s a demand. Can’t find any similar project even in other languages.
check out https://github.com/cberner/redb! it is inspired by LMDB and has comparable performance, but is entirely built in rust!
-
Meilisearch just announced its $15M Serie A, the search Rust engine strikes again
Yup, the language is immature in some domains like data replication, compilation time, lifetime expressivity, not having a default async runtime and the incompatibility of all of them. But many of these domains are worked on and improved every day this is why I love this language so much. This is because there is space for improvement. I also hope that one day we will have a pure-Rust LMDB alternative that I can contribute to without fear of C.
-
RFC+AMA: redb, embedded key-value store file format
they are, ya! I'm quite excited about that, and already have a PR open to use GATs. It's not enough to fix this issue though, because std needs to add support for LendingIterator too
What are some alternatives?
sled - the champagne of beta embedded databases
heed - A fully typed LMDB wrapper with minimum overhead 🐦
nebari - A pure Rust database implementation using an append-only B-Tree file format.
ab-av1 - AV1 re-encoding using ffmpeg, svt-av1 & vmaf.
tokio-uring - An io_uring backed runtime for Rust
rust - Empowering everyone to build reliable and efficient software.
sediment - A low-level MVCC file format for storing blobs.
photondb - A high-performance storage engine for modern hardware and platforms.
deno - A modern runtime for JavaScript and TypeScript.
charabia - Library used by Meilisearch to tokenize queries and documents
holochain - The current, performant & industrial strength version of Holochain on Rust.
tauri - Build smaller, faster, and more secure desktop applications with a web frontend.