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.
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.
For documentation on how to use this crate, refer to the example in
src/lib.rs
.
See contained LICENSE
file (MIT License).
deref_owned
version 0.7.0 (this changes bounds on
Storable::AlignedRef
)deref_owned
version 0.6.1deref_owned::GenericCow
and deref_owned::Owned
are no longer
re-exportedderef_owned
version 0.4.0deref_owned
instead
of own module owning_pointer
deref_owned::Owned
instead of owning_pointer::Owned
deref_owned::IntoOwned
instead of
owning_pointer::PointerIntoOwned
Vec<T>
instead of owning_pointer::OwnedPointer<Vec<T>>
(as deref_owned::IntoOwned
is implemented for Vec<T>
)deref_owned::{Owned, IntoOwned}
in module storable
deref_owned::IntoOwned
in crate-level moduleimpl_ord_for_storable
, which allows automatic
implementation of PartialEq
, Eq
, PartialOrd
, and Ord
for types
which implement Storable
Storable::TRIVIAL_CMP
to true in more cases to improve performance
and make default implementation of Storable::cmp_bytes_unchecked
do a
trivial comparison if constant is truestorable::Storable::AlignedRef
StorableRef
instead of references to Storable
in more places
StorableRef
instead of reference to Storable
as key
to method Txn::get_owned
(which was already allowed for Txn::get
)StorableRef
for tuples (e.g.
(&i32, &String)
in addition to (&i32, &str)
), which enhances
usability in some casesStorable
for certain smart pointers such
as Vec<u8>
and String
BorrowStorable
and StorableRef
which handle storing
tuples in a more efficient way (without unnecessary cloning/copying)storable
X
to T
for generic structs
in owning_pointer
For older changes, refer to the CHANGELOG.md
file.