Practical overview
When it fits
Use DeraineDB when an application needs an embedded or self-hosted vector retrieval layer, especially for local RAG or edge workloads where metadata filtering is part of the search.
Who it is for
- Developers adding vector retrieval to local RAG applications.
- Teams building edge-device semantic search or applications that need embedded vector storage.
- Developers using the documented Python, Go, Rust or JavaScript/TypeScript clients.
Documented uses
- Store embeddings for later retrieval.
- Search for nearest vectors using HNSW.
- Filter vector-search results using a 64-bit metadata mask.
- Provide a self-hosted retrieval layer for local RAG or edge applications.
Requirements & limits
The repository declares an Apache-2.0 license. The README documents Docker deployment and client SDKs for Python, Go, Rust and JavaScript/TypeScript.
- DeraineDB is a retrieval and storage component; the Python example uses Sentence Transformers separately to produce embeddings.
- The documented Docker setup maps ports 50051 and 9090 and mounts a local directory for data.
- Clients must use the server's API key; setting it explicitly avoids the server generating a different key after a restart.
- The README reports benchmarks for a 1,000-vector, 1536-dimension stress test; these are project-reported figures.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Start DeraineDB with Docker
Launch the documented self-hosted server with persistent local data and a stable API key.
Before you start
- Docker
- A local data directory to mount
- An API key value to use for the server and its clients
Steps
Run the README's Docker command using image
deraine-db:v2.0-stable, mapping ports 50051 and 9090 and mounting$(pwd)/dataat/app/data.Set
DERAINE_DB_API_KEYto the chosen key in the container environment.Configure clients to send the same API key when connecting to the server.
Expected outcome
The documented command starts the DeraineDB container with a mounted data directory and client-matched API key.
Guide limitations
- If the key is omitted, the server generates a new random key at each start and prints it once to the logs.
Write and retrieve a vector with the Python example
Store an embedding and search for a nearest match using a metadata filter.
Before you start
- A running DeraineDB server
- The documented Python SDK and Sentence Transformers
- A client API key matching
DERAINE_DB_API_KEY - A vector formatted for the example's 1536 dimensions
Steps
Create a
SentenceTransformerembedder usingall-MiniLM-L6-v2and connect withDeraineClientto the server on port 50051.Encode the example text and pad its 384-dimensional embedding to 1536 dimensions as shown.
Write the vector with an ID and metadata mask
0x01.Encode a query, apply the same dimension padding, and call search with
k=1and filter mask0x01.
Expected outcome
The documented example stores an embedding and requests the closest result matching the metadata mask.
Guide limitations
- The README demonstrates one padded 1536-dimensional workflow; it does not document a general embedding-generation or dimension-conversion process.
Compare options for Vector search
These projects document a common task and share a project role. This is a source-based comparison, not an execution benchmark or a guarantee of interchangeability.
| Project | Documented purpose | Platform | Access and requirements |
|---|---|---|---|
| Derainedb | Store embeddings for later retrieval. | Self-hosted, Server | The repository declares an Apache-2.0 license. The README documents Docker deployment and client SDKs for Python, Go, Rust and JavaScript/TypeScript. |
| Mettis | Index text documents through an HTTP endpoint. | Linux, Self-hosted, Server |
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 15 October 2026
- Original website title
- RikardoBonilla/DeraineDB · Official homepage title · retained in its source language

