composable-indexes

Crates.iocomposable-indexes
lib.rscomposable-indexes
version0.9.0
created_at2025-04-07 19:55:32.28742+00
updated_at2025-12-31 02:45:47.175283+00
descriptionIn-memory collections with composable indexes
homepage
repositoryhttps://github.com/utdemir/composable-indexes
max_upload_size
id1624664
size210,307
Utku Demir (utdemir)

documentation

README

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
Commit count: 61

cargo fmt