3 ms·
not sure why all the existing crates have gone so far out of date. i feel like generating bindings isn't that hard if you've done it before but can be a blocker
by seanwatters 2y ago
not sure why all the existing crates have gone so far out of date. i feel like generating bindings isn't that hard if you've done it before but can be a blocker for people who haven't so maybe this will help.
some of the existing crates had the -sys suffix but it didn't seem like they were actually checking for it on the system (i'm not sure that LMDB is installed by default on most systems anyway?) so opted to not use it.
chose to keep the version in step with LMDB (current looks like 0.9.70 in the lmdb.h).
will regenerate anytime i become aware of a version bump for LMDB.
- Shawnecy 2y ago> not sure why all the existing crates have gone so far out of date. Pure speculation on my part: maybe people are choosing Rust-based embedded key value stores like sled or redb?
- sbt567 2y agoOr https://lib.rs/crates/fjall https://lib.rs/crates/fjall
- jszymborski 2y agoOnly slightly off topic, but any of these support fast concurrent writes? LMDB really slows down for me when I'm trying to write a lot to it and locking means i cant use concurrency to speed it up.
- nahnahno 2y agoBatching helps, and if you can avoid syncing after every write that helps too. In practice I get great throughout, but then I’m OK with losing a small amount of data if my server dies during writes, as long as that doesn’t lead to corruption, which it doesn’t with MDB_NOSYNC and kernel guided fsyncing
- jnwatson 2y agoLMDB Python maintainer here. 0.9.70 is not really the latest release. It isn't binary compatible with official "releases" though it has sneaked out in a few bindings. Latest is 0.9.31.
- bvrmn 2y agoThank you for your work! I'm a user of py-lmdb for 8 years.
- montymintypie 2y agoI always saw the "-sys" suffix as "raw, unsafe bindings", not pulling it from the system. And non-sys is your safe Rust abstraction.