Restream/reindexer

Embeddable, in-memory, document-oriented database with a high-level Query builder interface.

What it solves

Reindexer is designed as a high-performance, document-oriented database that serves as a more performant alternative to Elasticsearch. It focuses on providing fast search capabilities for complex queries while maintaining low memory consumption.

How it works

Reindexer is an embeddable, in-memory database with a core written in C++ and an application-level API provided in Go. It stores documents and indices in dense binary C++ structs to minimize the load on Go's garbage collector. For persistence, it can asynchronously write documents to disk using LevelDB. It supports three operational modes: embedded (as a static library), embedded with a bundled server, or as a standalone server.

Who it’s for

It is intended for developers who need a fast, in-memory search engine with complex query support, particularly those working with Go or C++ and seeking an alternative to heavier search engines like Elasticsearch.

Highlights

  • High Performance: Capable of handling up to 500K simple queries per second on a single CPU core.
  • Advanced Search: Includes internal engines for full-text search, k-nearest neighbors (ANN/KNN) vector search, and hybrid search combining both.
  • Memory Efficiency: Uses binary C++ structs and string deduplication to keep memory overhead low (approx. 32 bytes per document).
  • Flexible Querying: Offers both an ORM-like Query builder and a SQL-compatible interface.
  • Scalability: Supports synchronous and asynchronous replication as well as basic sharding.

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト