Restream/reindexer
Embeddable, in-memory, document-oriented database with a high-level Query builder interface.
What it solves
Reindexer is designed to provide high-performance search and complex querying capabilities for document-oriented data. It serves as a more performant alternative to tools like Elasticsearch, focusing on minimizing memory allocation and maximizing query speed.
How it works
It is an embeddable, in-memory database with a core written in C++ and an application-level API provided in Go. To maintain speed and low memory overhead, it stores documents and indices in dense binary C++ structs, reducing the load on Go's garbage collector. It supports three deployment modes: embedded as a static library, embedded with a bundled server, or as a standalone server. For persistence, it uses LevelDB to asynchronously write documents to disk.
Who it’s for
Developers who need a fast, document-oriented database for complex queries, specifically those looking for an in-memory solution that can be embedded directly into a Go application or run as a standalone service.
Highlights
- Vector Search: Includes internal k-nearest neighbors (KNN) and approximate nearest neighbors (ANN) search engines.
- Hybrid Search: Supports combining full-text search and vector search.
- High Performance: Capable of handling up to 500K simple queries per second on a single CPU core.
- Flexible Querying: Offers both an ORM-like Query builder and a SQL-compatible interface.
- Advanced Indexing: Supports sortable indices, composite indices, and indices on array fields.
Related
- Project
- Project
- Project
- Project
- Project