Skip to content

solisoft/solidb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

635 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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
  • πŸ“Š 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 function for grouping temporal data into intervals (seconds, minutes, hours, days)
  • 🌊 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
  • ⏰ Background Jobs β€” Cron jobs and job queues with priorities and retries

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.

πŸ“‹ Build Requirements

Ubuntu/Debian

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

Arch Linux

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

πŸ“š 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

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors