SkillAgentSearch skills...

Mdbx

Modern fork of reth-libmdbx. Faster. Safer. Simpler.

Install / Use

/learn @init4tech/Mdbx
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

signet-libmdbx

Rust bindings for libmdbx.

Forked from reth-libmdbx, which was forked from an earlier Apache licenced version of the libmdbx-rs crate.

NOTE: Most of the repo came from lmdb-rs bindings.

Differences from reth-libmdbx

  • Improve documentation :)
  • Add [TxUnsync] type for single-threaded transactions.
    • These may be up to 3x faster than the thread-safe versions.
  • Rename [Transaction] to [TxSync] for clarity.
  • Improve support for custom TableObject types.
    • Added TableObjectOwned trait to represent types that can be deserialized from a database table without borrowing.
    • Added ReadError error type to represent errors that can occur when reading from the database. This captures MDBX errors as well as codec specific errors.
  • More-accurate lifetime semantics
    • Cursors now have lifetimes tied to the transaction they were created from.
    • Cursors CANNOT hold transactions open.
    • All DB reads borrow from the transaction when available.
  • API consistency review
    • iter and iter_dup now have consistent behavior (previously, iter would start at the next key, while iter_dup would start at the current key).
    • Iteration methods that reposition the cursor now do so BEFORE returning the iterator.
  • Module layout changes
    • sys - Environment and transaction management.
    • tx - module contains transactions, cursors, and iterators

Updating the libmdbx Version

To update the libmdbx version you must clone it and copy the dist/ folder in mdbx-sys/. Make sure to follow the building steps.

# clone libmdbx to a repository outside at specific tag
git clone https://github.com/erthink/libmdbx.git ../libmdbx --branch v0.7.0
make -C ../libmdbx dist

# copy the `libmdbx/dist/` folder just created into `mdbx-sys/libmdbx`
rm -rf mdbx-sys/libmdbx
cp -R ../libmdbx/dist mdbx-sys/libmdbx

# add the changes to the next commit you will make
git add mdbx-sys/libmdbx

Linux Testing

Run tests in a Linux environment (Ubuntu 24.04):

# Build the test image
docker build -t mdbx-linux-tests .

# Run full checks (fmt, clippy, tests)
docker run --rm mdbx-linux-tests

# Run specific commands
docker run --rm mdbx-linux-tests cargo test --all-features
docker run --rm mdbx-linux-tests cargo clippy --all-features --all-targets

Related Skills

View on GitHub
GitHub Stars9
CategoryDevelopment
Updated1mo ago
Forks0

Languages

C

Security Score

85/100

Audited on Feb 12, 2026

No findings