A lightweight, high-performance multi-document database with live query and blob support, written in Rust.
video.mov
Full documentation available at: https://solidb.solisoft.net/docs/
- π Fast & Efficient β Built with Rust for maximum performance
- π JSON Document Storage β Store and query JSON documents with ease
- π Columnar Storage β Column-oriented storage for analytics workloads with LZ4 compression and specialized indexes (Sorted, Hash, Bitmap, MinMax, Bloom)
- ποΈ Blob Storage β Native support for storing and retrieving binary files
- πΎ RocksDB Storage β Production-grade persistence with automatic crash recovery
- π SDBQL Query Language β Familiar query syntax inspired by ArangoDB, plus as-of joins, lambdas, sketches, and time-travel scans
- π Indexing β Hash, persistent, geo, and fulltext indexes
- π Geo Queries β Spatial indexes and distance functions
- π Graph Traversals β Native graph queries and shortest path algorithms
- π Common Table Expressions β WITH clauses for composable, reusable subqueries
- π¦ COLLECT AGGREGATE β GROUP BY with inline aggregations (COUNT, SUM, AVG, MIN, MAX)
- β‘ Prepared Statement Cache β Parse once, execute many with automatic LRU eviction
- β±οΈ Time Series β TIME_BUCKET, DELTA, RATE, FILL, RESAMPLE, and ASOF JOIN
- π Stream Processing β CREATE STREAM with tumbling/sliding WINDOW clauses for continuous aggregations
- π§ Vector Indexes β Create and query vector indexes for ML/AI workloads
- π Hybrid Search β Combined vector similarity + fulltext search in a single query
- π Vector Functions β VECTOR_DISTANCE, VECTOR_NORMALIZE, quantization/dequantization
- β‘ Live Queries β Real-time subscriptions via WebSocket
- π₯οΈ Lua Scripting β Server-side scripts for custom API endpoints (
--no-lua/SOLIDB_NO_LUA=1skips the VM pool)
- π Multi-Node Replication β Peer-to-peer replication with automatic sync
- π§© Sharding β Horizontal data partitioning with configurable shard count
- βοΈ Auto-Rebalancing β Automatic data redistribution when nodes change
- β‘ Hybrid Logical Clocks β Consistent ordering across distributed nodes
- π Distributed Transactions β Two-phase commit (2PC) for ACID guarantees across shards
- π Replication Lag Metrics β Per-peer lag monitoring via Prometheus
- π OpenTelemetry Tracing β W3C traceparent propagation for distributed tracing
- β‘ Regex Caching β Compiled regex patterns cached globally (~8000x speedup on repeated patterns)
- π JWT Authentication β Secure API access with Bearer tokens
- π API Keys β Non-expiring keys for server-to-server communication
- π³ Transactions β ACID transactions via X-Transaction-ID header
- π₯οΈ Web Dashboard β Built-in admin UI for managing the database
SoliDB provides native client libraries for multiple languages. See Client Documentation for installation and usage details.
- Node.js (
solidb-client) - Python (
solidb) - Go (
solidb-go-client) - PHP (
solidb/php-client) - Ruby (
solidb) - Elixir (
solidb)
# Clone and build git clone https://github.com/solisoft/solidb cd solidb cargo install --path . # Start the server solidb
The server starts on http://localhost:6745 with a web dashboard.
Note: A default admin user is created on startup with a randomly generated password displayed in the logs.
Prebuilt binaries are published for each release:
| Platform | Artifact |
|---|---|
| Linux x86_64 | solidb-linux-amd64.tar.gz |
| Linux arm64 | solidb-linux-arm64.tar.gz |
| macOS arm64 | solidb-darwin-arm64.tar.gz |
| Windows x86_64 | solidb-windows-amd64.zip |
On Linux and macOS, install.sh fetches and installs the right one. On Windows, extract the
.zip and add the folder to your PATH, then run solidb.exe --port 6745 --data-dir .\data.
Two Windows caveats: --daemon is Unix-only and exits with an error β run SoliDB in a
console, or wrap it with a service manager such as NSSM or sc.exe. And
the generated .admin_password file under the data directory is written with default ACLs
rather than the owner-only permissions used on Unix, so restrict the data directory yourself
on a shared machine.
sudo apt-get install -y build-essential clang libclang-dev pkg-config libzstd-dev
sudo pacman -S base-devel clang gcc pkg-config zstd
Requires the MSVC build tools, CMake, and LLVM (RocksDB's bindgen needs libclang):
winget install Microsoft.VisualStudio.2022.BuildTools Kitware.CMake LLVM.LLVMExpect a long first build β RocksDB is a large C++ tree.
Visit the full documentation for:
- Getting started guide
- API reference
- SDBQL query syntax
- Cluster setup
- Lua scripting
- And much more!