index-db 0.1.0

B+tree indexing primitive for Rust storage engines - ordered keys, range scans, and concurrent access over paged storage.
Documentation
  • Ordered B+tree — keys kept in sorted order; logarithmic point lookup, insert, and delete
  • Range scans — forward and reverse iteration over a key range, the operation B+trees exist for
  • Paged layout — internal and leaf nodes are fixed-size pages, persistable and cacheable via a pager
  • Concurrent access — latch coupling (crabbing) for many-reader / many-writer traversal without a global lock
  • Bulk load — build a balanced tree bottom-up from sorted input
  • Pluggable key ordering — byte-ordered by default; custom comparators supported

Installation

[dependencies]
index-db = "0.1"

API Overview

For the complete reference, see docs/API.md.

Where It Fits

index-db is the ordered-index layer. It builds on / pairs with:

  • page-db — B+tree nodes are pages allocated and cached by the pager
  • lock-db — range locks protect scanned key ranges
  • storage engines — the secondary-index and ordered-access structure above the pager
  • lsm-db — a B-tree alternative to the LSM index for read-heavy workloads

It has no first-party dependencies, so it builds and tests standalone today.

Cross-Platform Support

Linux (x86_64, aarch64), macOS (x86_64, Apple Silicon), and Windows (x86_64) are first-class and verified by the CI matrix.

Contributing

See CONTRIBUTING.md and dev/DIRECTIVES.md. Before a PR: cargo fmt --all, cargo clippy --all-targets --all-features -- -D warnings, and cargo test --all-features must be clean.