Fully typed Rust LMDB wrappers with minimal overhead, supporting both LMDB master and encrypted master3 branches.
Heed and Heed3 are Rust-centric abstractions for the Lightning Memory-Mapped Database (LMDB), designed to store various Rust types with minimal overhead. They provide type-safe interfaces for LMDB, enabling safe and ACID-compliant storage operations while maintaining high performance. The libraries extend support to Serde-compatible types and work with both standard LMDB and its encrypted branch.
Rust developers building embedded databases or key-value stores that require ACID transactions, type safety, and minimal performance overhead. It is particularly suited for projects leveraging LMDB's efficiency in Rust applications.
Developers choose Heed for its minimal abstraction overhead that preserves LMDB's performance, combined with Rust's type safety and modern ergonomics. It uniquely supports both the standard LMDB branch and the encrypted mdb.master3 branch for encryption-at-rest.
Fully typed LMDB wrappers with minimum overhead 🐦
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides fully typed wrappers for storing Rust types in LMDB, ensuring compile-time safety and reducing runtime errors, as shown in the example code with Str and U32 types.
Optimized abstractions maintain LMDB's high performance characteristics, allowing efficient storage with minimal serialization cost, emphasized in the philosophy section.
Supports serialization and deserialization of custom Rust types using Serde, enabling flexible data storage without manual conversion, as highlighted in the key features.
Works with the encrypted mdb.master3 branch of LMDB, providing encryption-at-rest for sensitive data, which is unique among Rust LMDB wrappers.
Inherits LMDB's constraints, such as single-writer concurrency and fixed database size, which can limit scalability for certain high-throughput applications.
Building from source requires managing Git submodules and understanding the dual crate structure (heed and heed3), adding initial setup complexity, as noted in the building instructions.
Focused solely on LMDB, so it lacks support for other database backends or advanced features like async operations, which might require additional workarounds.