composable-indexes
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
imfeature.
- Optional support for persistent data structures via the
- 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_stdcompatible.
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