mmtkvdb
mmtkvdb
is a crate for Rust which provides a memory-mapped key-value
database. It uses LMDB and links with an existing liblmdb
on the system.
Safety
Because of how memory-mapped I/O is being used and also because of certain
assumptions of the underlying LMDB API, opening environments and databases
requires unsafe
Rust (i.e. the programmer must ensure that certain
preconditions are met that cannot be enforced by the compiler to avoid
undefined behavior). If you aim to program in safe Rust only, this Rust
library is not suitable for you.
API Documentation
For documentation on how to use this crate, refer to the example in
src/lib.rs
.
License
See contained LICENSE
file (MIT License).
Changelog
- 2023-01-10: Version 0.9.0
- Renamed
DbOptions
toDbBuilder
- Provide type alias
DbSpec<K, V, C>
forDbBuilder
s which have a name (or the unnamed database) set - Use
bindgen
version 0.63 for building
- Renamed
- 2022-08-27: Version 0.8.2
- Removed wrong (unnecessary) bound
T: Storable
in implementation ofBorrowStorable for Vec<T>
(only[T]
needs to beStorable
) - Re-export
storable::BorrowStorable
in crate-level module (resulting in all items of modulestorable
being available at crate-level) - Directly use question mark operator in all examples
- Minor code style change (use
io::Result<_>
instead ofResult<_, io::Error>
)
- Removed wrong (unnecessary) bound
- 2022-07-22: Version 0.8.1
- Fix warning by removing
#![feature(core_ffi_c)]
, which is now stable - Removed unnecessary
Sized
supertrait ofStorable
- Some code cleanup (simplified bounds on GATs in
Storable
tuples)
- Fix warning by removing
For older changes, refer to the CHANGELOG.md
file.