evmap
plrust
evmap | plrust | |
---|---|---|
5 | 7 | |
438 | 1,052 | |
- | 0.6% | |
1.8 | 7.9 | |
almost 3 years ago | 2 months ago | |
Rust | Rust | |
Apache License 2.0 | PostgreSQL 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.
evmap
-
Samsara, a safe Rust concurrent cycle collector
The problem is, every single one of these half-dozen crates has at least one known major issue (including UAF), exactly like C++ implementations (which isn't surprising since it's the kind of things where the ownership isn't clear and then the borrow checker can't help us).
-
Rwlock with "snapshot" read
You could also try https://github.com/jonhoo/evmap
-
Jon Gjengset: Rust at speed – building a fast, concurrent database (2018)
In this video, one of the people that worked on creating Noria talks a bit about the implementation of it. Very interesting talk, highly recommend watching it.
He talks, among other things, about lockless eventually consistent concurrent access to data shared between multiple threads. Jon has a crate that he made for this called evmap, for Noria and anyone else to use. GitHub repo https://github.com/jonhoo/evmap and crate https://crates.io/crates/evmap
Jon has a bunch of other interesting videos about Rust on his channel as well. https://youtube.com/c/JonGjengset
-
Call for Help - Open Source Datom/EAV/Fact database in Rust.
He talks, among other things, about lockless eventually consistent concurrent access to data shared between multiple threads. Jon has a crate that he made for this called evmap, for Noria to use. GitHub repo https://github.com/jonhoo/evmap and crate https://crates.io/crates/evmap
-
go-evmap - A generic hash map for lock-free reads (Feedback requested)
The data structure is actually very fascinating, it is optimized for high-read, low-write workloads where readers never have to coordinate with writers. This lack of coordination comes at a cost, "The trade-off exposed by this module is one of eventual consistency: writes are not visible to readers except following explicit synchronization. Specifically, readers only see the operations that preceded the last call to `Refresh` by a writer. This lets writers decide how stale they are willing to let reads get. They can refresh the map after every write to emulate a regular map, or they can refresh only occasionally to reduce the synchronization overhead at the cost of stale reads." (evmap readme)
plrust
-
Show HN: PRQL in PostgreSQL
Nice to see extensions like this one developed in Rust/pgrx. Reminds me of https://github.com/tcdi/plrust
-
PostgreSQL and SQL:2023
I've heavily enjoyed writing plrust
-
Build high-performance functions in Rust on Amazon RDS for PostgreSQL
The extension is open source https://github.com/tcdi/plrust
- Production grade databases in Rust
- Write Postgres functions in Rust
- Call for Help - Open Source Datom/EAV/Fact database in Rust.
-
PostgreSQL 14 Beta 1 Released
> PL/Rust could be fun, too. I like the idea of using macros to generate lots of code, especially type definitions across multiple languages.
--> https://github.com/zombodb/plrust "A Rust procedural language handler for PostgreSQL"
and PL/Julia work in progress:
* GSOC2021 "Create procedural language extension for the Julia programming language"
* https://summerofcode.withgoogle.com/projects/#67439132530442...
What are some alternatives?
go-evmap - A Go implementation of Rust's evmap which optimizes for high-read, low-write workloads and uses eventual consistency to ensure that readers and writers never block each other.
pgrx - Build Postgres Extensions with Rust!
lespas - Les Pas, photo album app for Nextcloud user
leftright-map-java - A (hopefully) Fast, (hopefully) Thread safe map inspired by evmap
arc-swap - Support atomic operations on Arc itself
mimir - ⚡ Supercharged Flutter/Dart Database
influxdb_iox - Pronounced (influxdb eye-ox), short for iron oxide. This is the new core of InfluxDB written in Rust on top of Apache Arrow.
Simple-File-Manager - Easy app for managing your files without ads, respecting your privacy & security
einkbro - A small, fast web browser based on Android WebView. It's tailored for E-Ink devices but also works great on normal android devices.