#collection #no-std

no-std composable-indexes

In-memory collections with composable indexes

13 releases (7 breaking)

Uses new Rust 2024

0.9.0 Dec 31, 2025
0.8.0 Dec 30, 2025
0.7.0 Dec 22, 2025
0.6.3 Dec 14, 2025
0.1.1 Apr 8, 2025

#691 in Data structures

Apache-2.0

135KB
3.5K SLoC

composable-indexes

Crates.io Docs.rs codecov

A Rust library for collections with flexible and composable in-memory indexes. The indexes stay in sync with the collection without any extra effort.

Features

  • Batteries included - built-in indexes for common use cases.
    • Optional support for persistent data structures via the im feature.
    • Optional support for Roaring Bitmaps via the roaring feature.
  • Fast - indexes are backed by performant data structures.
  • Composable - build complex indexes from simple ones with combinators.
  • Extensible - write your own index and aggregations.
  • Safe - Small core, property-based tests, no unsafe.
  • Compact - Single runtime dependency (hashbrown), no_std compatible.

Example

See session.rs for an example.

Notes

Roadmap

  • Transactions (being able to do multiple operations atomically and means to discard changes)
  • Fallible operations (i.e., conflicts, postconditions)

Future & ideas

  • On-disk storage backends
  • Operations on more than one collection (i.e., foreign keys, joins)
  • Change data capture
  • Sub-documents, better handling of nested data structures

Dependencies

~0.7–1.8MB
~30K SLoC