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.
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
skaidb --data-dir ./data --bind-addr 127.0.0.1 \
--quic-port 7000 --rest-port 7080
# every option is also a CLI flag / env var
skaidb --print-config
curl -X POST 127.0.0.1:7080/query \
-d "CREATE TABLE users (PRIMARY KEY (id))"
curl -X POST 127.0.0.1:7080/query \
-d "INSERT INTO users (id, name) VALUES (1, 'ada')"
curl -X POST 127.0.0.1:7080/query \
-d '{"sql":"SELECT * FROM users"}'
# nearest node — auto-discovers the cluster skaidbsh --host 127.0.0.1 # one-shot skaidbsh --host node1 -e "SELECT COUNT(*) FROM users" # offline, embedded engine skaidbsh --local ./data -e "SELECT * FROM users"
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.
WAL recovery, SSTables with Bloom filters, lazy-leveled compaction, group-commit fsync, and a bounded RAM read cache.
Consistent-hash ring, tunable quorums (ONE / QUORUM / ALL), linearizable per-row UPDATEs, read-repair, and hinted handoff.
Projection over nested paths, WHERE, GROUP BY / HAVING, aggregates, JOINs, UNION, and embedded transactions with read-your-writes.
HNSW approximate nearest-neighbor with filtered kNN, hybrid ranking, and a BM25 index queried straight from SQL — both distributed.
Gorilla-compressed chunks at ~1–1.5 B/sample, ≥2M samples/s ingest, PromQL + Prometheus remote-write, time_bucket() and rate().
MQTT 3.1.1 / 5.0 with replicated broker state, topic ACLs, WebSocket, and a topic→table sink — IoT data lands as rows.
Nodes join or leave at runtime — a single membership change moves only ~1/N of the keyspace, correct under live writes.
SCRAM auth, RBAC, TLS everywhere (client + internode), at-rest encryption, and Kerberos/GSSAPI single sign-on.
skaidb ships as compiled packages from the signed repository at repo.dsys.org. Installing via apt keeps upgrades automatic; direct downloads are below.
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.
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.