Rust SSPL-1.0

A distributed database that speaks SQL.

skaidb is a schema-less, SQL-speaking, leaderless distributed database written in Rust. It stores dynamically-typed documents and queries them with a subset of SQL:2016 core.

One binary gives you LSM storage, leaderless replication with tunable quorums, secondary and global indexes, full-text and vector search, geo queries, time-series tables, and a native MQTT broker — behind a binary fast path with a REST gateway alongside.

Get started Read the docs
leaderless
every node reads & writes
1 GB
runs a comfortable cluster node
7
language drivers
amd64 · arm64
signed packages
Quickstart

From install to first query

Signed packages for Debian/Ubuntu on amd64 and arm64, straight from the package repository. Each package ships the skaidb server and the skaidbsh shell.

# Add the signed apt repository (Debian / Ubuntu)
curl -fsSL https://repo.dsys.org/pubkey.gpg \
  | sudo tee /etc/apt/keyrings/repo-dsys.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/repo-dsys.gpg] https://repo.dsys.org/deb stable main" \
  | sudo tee /etc/apt/sources.list.d/repo-dsys.list
sudo apt update && sudo apt install skaidb

The node also serves a built-in web UI at 127.0.0.1:7080/ui — status, SQL console, and admin ops, embedded in the binary.

What's inside

Built end-to-end, tested

LSM storage engine

WAL recovery, SSTables with Bloom filters, lazy-leveled compaction, group-commit fsync, and a bounded RAM read cache.

Leaderless replication

Consistent-hash ring, tunable quorums (ONE / QUORUM / ALL), linearizable per-row UPDATEs, read-repair, and hinted handoff.

SQL:2016 subset

Projection over nested paths, WHERE, GROUP BY / HAVING, aggregates, JOINs, UNION, and embedded transactions with read-your-writes.

Vector & full-text search

HNSW approximate nearest-neighbor with filtered kNN, hybrid ranking, and a BM25 index queried straight from SQL — both distributed.

Time-series tables

Gorilla-compressed chunks at ~1–1.5 B/sample, ≥2M samples/s ingest, PromQL + Prometheus remote-write, time_bucket() and rate().

Native MQTT broker

MQTT 3.1.1 / 5.0 with replicated broker state, topic ACLs, WebSocket, and a topic→table sink — IoT data lands as rows.

Online resharding

Nodes join or leave at runtime — a single membership change moves only ~1/N of the keyspace, correct under live writes.

Security built in

SCRAM auth, RBAC, TLS everywhere (client + internode), at-rest encryption, and Kerberos/GSSAPI single sign-on.

Download

Compiled packages, signed

skaidb ships as compiled packages from the signed repository at repo.dsys.org. Installing via apt keeps upgrades automatic; direct downloads are below.

Debian / Ubuntu — amd64

x86-64 servers and desktops.

skaidb_0.196.0_amd64.deb
Debian / Ubuntu — arm64

Raspberry Pi 4/5, ARM servers, Apple-silicon VMs.

skaidb_0.196.0_arm64.deb
Repository & key

Browse all packages, or fetch the GPG signing key.

Browse packages Signing key

Every package installs skaidb + skaidbsh, a systemd unit, and a default config. See the install guide for containers and other platforms, and DOCKER for compose examples.

Client drivers

Dependency-free, in seven languages

Each driver mirrors the idiomatic database API of its language and speaks the binary protocol directly, with SCRAM auth and safe parameter binding. Download them from the drivers page.

Python Node.js / TypeScript Go Java Ruby PHP C# / .NET Rust (embeddable)