Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

814 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

SoliDB

A lightweight, high-performance multi-document database with live query and blob support, written in Rust.

video.mov

CI

πŸ“– Documentation

Full documentation available at: https://solidb.solisoft.net/docs/

✨ Main Features

Core Database

  • πŸš€ 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

Query Language

  • πŸ” 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 & Streaming

  • ⏱️ Time Series β€” TIME_BUCKET, DELTA, RATE, FILL, RESAMPLE, and ASOF JOIN
  • 🌊 Stream Processing β€” CREATE STREAM with tumbling/sliding WINDOW clauses for continuous aggregations

Vector Search

  • 🧠 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

Real-time & Scripting

  • ⚑ Live Queries β€” Real-time subscriptions via WebSocket
  • πŸ–₯️ Lua Scripting β€” Server-side scripts for custom API endpoints (--no-lua / SOLIDB_NO_LUA=1 skips the VM pool)

Distributed Architecture

  • πŸ”„ 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

Observability & Performance

  • πŸ”­ OpenTelemetry Tracing β€” W3C traceparent propagation for distributed tracing
  • ⚑ Regex Caching β€” Compiled regex patterns cached globally (~8000x speedup on repeated patterns)

Security & Administration

  • πŸ” 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

πŸ“¦ Official Clients

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)

πŸš€ Quick Start

# 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.

πŸ’» Platforms

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.

πŸ“‹ Build Requirements

Ubuntu/Debian

sudo apt-get install -y build-essential clang libclang-dev pkg-config libzstd-dev

Arch Linux

sudo pacman -S base-devel clang gcc pkg-config zstd

Windows

Requires the MSVC build tools, CMake, and LLVM (RocksDB's bindgen needs libclang):

winget install Microsoft.VisualStudio.2022.BuildTools Kitware.CMake LLVM.LLVM

Expect a long first build β€” RocksDB is a large C++ tree.

πŸ“š Learn More

Visit the full documentation for:

  • Getting started guide
  • API reference
  • SDBQL query syntax
  • Cluster setup
  • Lua scripting
  • And much more!

πŸ“„ License

O'Saasy License

About

SoliDB: Multi-Documents Database with live query and blob supports

Resources

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /