← All projects

DriftIndex

a lightweight search server compatible with the Elasticsearch API

  • D
  • Elasticsearch API
  • Docker
  • License: MIT
  • Alpha

Alpha version. For now DriftIndex works in a very limited way: it supports only a narrow, chosen subset of Elasticsearch queries, and its API may still change. It’s meant for tests and local development, not as a production replacement for Elasticsearch.

DriftIndex is a search server written in D that understands a chosen slice of the Elasticsearch REST API. It was built for integration tests and local development: where full Elasticsearch eats too much memory, DriftIndex answers the queries you actually use the same way, with a fraction of the RAM. It’s alpha — performance, data durability and production security are deliberately out of scope.

What it does

  • Compatible with a chosen subset of the Elasticsearch REST API and query DSL (including bool with filter/must).
  • As little memory as possible — cheap to run next to the app it supports.
  • Data on a /data volume, or fully in memory (DRIFTINDEX_IN_MEMORY=true).
  • Docker images for Debian, Ubuntu, Fedora, Alpine and Raspberry Pi OS, on AMD64, ARM64, ARM32V7, ARM32V6, RISCV64, PPC64LE and LOONG64.
  • Stands in for Elasticsearch in the laserovsky.net blog’s development setup.

✦ Runs on laserovsky.net

Getting started

$ docker run --rm -p 9200:9200 starxen/driftindex
$ curl http://localhost:9200/
Code on GitLab →