Multi-model database · Written in Rust

Documents, graphs, vectors & time-series. One engine.

SoliDB stores every shape your data takes and answers all of them with a single query language. Add live subscriptions, hybrid vector search, replication and sharding — from one self-contained binary.

RocksDB persistence ACID transactions O'Saasy License

One engine answers documents, graphs, vectors and time-series.

Seven models, one store

Stop bolting a new database onto every feature.

A document store, a graph engine, a vector index and a time-series layer usually mean four systems to run and keep in sync. SoliDB puts them behind one storage engine and one query language.

Document

Schemaless JSON with secondary indexes.

Graph

Traversals & shortest-path over edges.

Vector

Nearest-neighbor similarity for embeddings.

Time-series

TIME_BUCKET rollups & live windows.

Columnar

LZ4-compressed columns for analytics.

Geo

Spatial indexes & distance queries.

Blob

Native binary storage with transforms.

What ships in the box

A production database, not a toy.

Everything you'd otherwise assemble from a cache, a search cluster, a job runner and a message bus — built in and consistent.

01

SDBQL query language

An ArangoDB-inspired language with FOR / FILTER / SORT, joins, upserts, common table expressions and prepared-statement caching.

JOINCOLLECTWITH60+ functions
02

Live queries

Subscribe to a query over a WebSocket and receive changes the moment they land. Build dashboards and collaborative UIs without a polling loop.

WebSocketsubscriptionsreal-time
03

Vector & hybrid search

Store embeddings in a vector index and blend semantic similarity with fulltext relevance in a single HYBRID_SEARCH call.

VECTOR_SIMILARITYHYBRID_SEARCHRRF fusion
04

Distributed by design

Peer-to-peer replication, horizontal sharding with auto-rebalancing, and two-phase commit for ACID guarantees across nodes.

replicationsharding2PCHLC
05

Scripting & background jobs

Embed Lua 5.4 for custom API endpoints, and run cron schedules and priority job queues with retries — right beside your data.

Lua 5.4cronqueues
06

Observability & security

OpenTelemetry tracing, Prometheus metrics and replication-lag monitoring, with JWT auth, API keys and a built-in web dashboard.

OpenTelemetryPrometheusJWT
One language, every model

Write the query. SoliDB picks the index.

The same FOR … RETURN shape walks a graph, ranks vectors, or rolls up a time series. Pick a tab.

traversal.sdbql
# People Alice follows, up to two hops out
FOR v, e IN 1..2 OUTBOUND 'people/alice' follows
  FILTER e.since > 2020
  RETURN { person: v.name, since: e.since }

Edges are first-class: bind the vertex v and the edge e, filter on either, and let the traversal fan out breadth-first.

similarity.sdbql
# Closest articles to a query embedding
FOR doc IN articles
  LET sim = VECTOR_SIMILARITY(doc.embedding, @vec)
  FILTER sim > 0.8
  SORT sim DESC
  LIMIT 10
  RETURN { title: doc.title, score: sim }

Bind your query vector as @vec. A dedicated vector index keeps nearest-neighbor lookups fast as the collection grows.

hybrid.sdbql
# Semantic + keyword, fused into one ranking
LET results = HYBRID_SEARCH(
  "articles", "embedding_idx", "content",
  @vec, "machine learning",
  { vector_weight: 0.8, text_weight: 0.2, limit: 5 }
)
FOR result IN results
  RETURN result

One call over a vector index and a fulltext field. Tune the blend with weights, or switch to fusion: "rrf" for reciprocal-rank fusion.

timeseries.sdbql
# Requests per hour, newest last
FOR e IN events
  COLLECT bucket = TIME_BUCKET(e.ts, '1h')
  AGGREGATE hits = COUNT(1)
  SORT bucket ASC
  RETURN { bucket, hits }

Group timestamps into fixed intervals — '1s', '1m', '1h', '1d' — and aggregate inline. Promote it to a CREATE STREAM for continuous rollups.

By the numbers

Small footprint, wide surface.

7
native data models
60+
SDBQL functions
8
official client SDKs
1
self-contained binary
Talk to it from anywhere

Native clients for the languages you already ship.

A MessagePack binary protocol for high-throughput clients, plus a plain HTTP + JSON API when you just want curl.

Rust Node.js JavaScript Python Go PHP Ruby Elixir
Quick start

Running in one command.

Build from source and start the server — it comes up with the HTTP API and the web dashboard on port 6745. A random admin password is printed to the logs on first boot.

bash
# clone & install
$ git clone https://github.com/solisoft/solidb
$ cd solidb && cargo install --path .

# start the server
$ solidb
  ✓ listening on http://localhost:6745
  ✓ dashboard ready — admin password in logs
Give your data one home

The database that keeps up with your features.

Documents to graphs, embeddings to events — model it once, query it one way, and skip the glue between four systems.