https://github.com/sabledb-io/sabledb Skip to content Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} sabledb-io / sabledb Public * Notifications * Fork 1 * Star 176 * Ultra fast, persistent database supporting Redis API License BSD-3-Clause license 176 stars 1 fork Branches Tags Activity Star Notifications * Code * Issues 6 * Pull requests 0 * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Security * Insights sabledb-io/sabledb This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 32 Commits docs/images docs/images libsabledb libsabledb sabledb sabledb sb sb scripts scripts ssl ssl .gitignore .gitignore BENCHMARK.md BENCHMARK.md Cargo.toml Cargo.toml LICENSE LICENSE README.md README.md sabledb.workspace sabledb.workspace server.ini server.ini View all files Repository files navigation * README * BSD-3-Clause license What is SableDb? SableDb is a key-value NoSQL database that utilizes RocksDb as its storage engine and is compatible with the Redis protocol. It aims to reduce memory costs and increase capacity compared to Redis. SableDb features include Redis-compatible access via any Redis client, up to 64K databases support, asynchronous replication using transaction log tailing and TLS connectivity support. Oh, and it's written in Rust :) Building SableDb is supported on all major OS: Linux, macOS and Windows Linux /macOS git clone https://github.com/sabledb-io/sabledb.git cd sabledb cargo build --release cargo test --release Windows On Windows, we require MSYS2 terminal for building SableDb. git clone https://github.com/sabledb-io/sabledb.git cd sabledb CFLAGS="-D_ISOC11_SOURCE" cargo build --release cargo test --release Running SableDb ./target/release/sabledb Usage: $target/release/sabledb [sabledb.ini] Supported features * Persistent data using RocksDb - use SableDb as a persistent storage using Redis's API * TLS connections * Replication using tailing of the transaction log * Highly configurable, but comes with sensible default values * Use the sb command line utility (target/release/sb) for performance testing Benchmark tool - sb SableDb uses its own benchmarking tool named sb ("SableDb Benchmark"). sb supports the following commands: * set * get * lpush * lpop * rpush * rpop * incr * ping Run sb --help to get the full help message. Below is a simple ( ping ) test conducted locally using WSL2 on Windows 10 (same machine is running both SableDb and sb...): sb progress demo set test, on the same setup (local machine, WSL2 on Windows 10): sb set progress demo Supported commands --------------------------------------------------------------------- String commands Command Supported Fully Comment supported? append decr decrby get getdel getex getrange getset incr incrby incrbyfloat lcs Does not support: IDX, MINMATCHLEN and WITHMATCHLEN mget mset msetnx psetex set setex setnx setrange strlen substr List commands Command Supported Fully supported? Comment blmove blmpop blpop brpop brpoplpush lindex linsert llen lmove lmpop lpop lpos lpush lpushx lrange lrem lset ltrim rpop rpoplpush rpush rpushx Generic commands Command Supported Fully supported? Comment del ttl Other commands Command Supported Fully supported? Comment info client id select ping Benchmarks Command set Payload size (bytes) rps p50 (ms) p90 (ms) p99 (ms) 64 448K 1.127 1.279 1.423 128 420K 1.199 1.375 1.551 256 363K 1.375 1.567 1.799 Command get Payload size (bytes) rps p50 (ms) p90 (ms) p99 (ms) 64 950K 0.495 0.671 1.087 128 907K 0.511 0.695 1.111 256 905K 0.519 0.711 1.119 Command mset Note: Each mset command is equivalent of 10 set commands Payload size (bytes) rps p50 (ms) p90 (ms) p99 (ms) 64 116K 3.8 4.6 6.3 128 72K 6.375 7.039 54.111 256 41.5K 0.432 7.279 226.943 Command incr The increment command is unique because it uses a "read-modify-update" in order to ensure the atomicity of the action which in a multi-threaded environment causes a challenge Payload size (bytes) rps p50 (ms) p90 (ms) p99 (ms) N/A 443K 1.127 1.295 1.383 Network only (ping command) Command rps pipeline p50 (ms) p90 (ms) p99 (ms) ping_inline 1.05M 1 0.407 0.775 1.143 ping_inline 6.65M 20 0.855 1.551 1.815 ping_mbulk 1.05M 1 0.399 0.727 1.127 ping_mbulk 7.96M 20 0.807 1.471 1.711 --------------------------------------------------------------------- Command executions can be seen here About Ultra fast, persistent database supporting Redis API Resources Readme License BSD-3-Clause license Activity Stars 176 stars Watchers 1 watching Forks 1 fork Report repository Releases No releases published Packages 0 No packages published Languages * Rust 99.2% * Shell 0.8% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.