# composable-indexes
[](https://crates.io/composable-indexes)
[](https://docs.rs/composable-indexes)
[](https://codecov.io/gh/utdemir/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.
- 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 - No runtime dependencies, `no_std` compatible.
## Example
See [crates/composable-indexes/examples/session.rs](./crates/composable-indexes/examples/session.rs).
## Notes
### Limitations
- For performance reasons, we do not use boxing or dynamic dispatch. But this flexibility comes with verbose type signatures.
### Future work
- Fallible operations (ie. conflicts, postconditions) w/transactionality
- Operations on more than one collection (ie, foreign keys, joins)
- Sub-documents, better handling of nested data structures