SnkvDB – Single-header ACID KV store using SQLite's B-Tree engine
SQLite's proven storage minus SQL parsing—3–5× throughput for KV-only workloads.
SNKV — a lightweight key-value store focused on simplicity, security and performance file based database , written using b-tree directly. Now supports vector HNSW , Join the discussion: https://discord.gg/EUb4Y5qE
SQLite B-tree without SQL: 57–68% faster KV ops, single-header drop-in.
Systems engineers, database developers, embedded systems programmers needing crash-safe KV storage
RocksDB · LMDB · LevelDB
SNKV cuts the top three layers and talks directly to SQLite's B-tree engine. No SQL strings. No query planner. No VM. Just put/get/delete on the same storage core that powers SQLite.
Python:
pip install snkv
from snkv import KVStore
with KVStore("mydb.db") as db: db["hello"] = "world" print(db["hello"]) # b"world"
C/C++ (single-header, drop-in):#define SNKV_IMPLEMENTATION #include "snkv.h"
KVStore *db; kvstore_open("mydb.db", &db, KVSTORE_JOURNAL_WAL); kvstore_put(db, "key", 3, "value", 5);
Benchmarks vs SQLite WITHOUT ROWID (1M records, identical settings):Sequential writes +57% Random reads +68% Sequential scan +90% Random updates +72% Random deletes +104% Exists checks +75% Mixed workload +84% Bulk insert +10%
Honest tradeoffs: - LMDB beats it on raw reads (memory-mapped) - RocksDB beats it on write-heavy workloads (LSM-tree) - sqlite3 CLI won't open the database (schema layer is bypassed by design)What you get: ACID, WAL concurrency, column families, crash safety — with less overhead for read-heavy KV workloads.
SQLite's proven storage minus SQL parsing—3–5× throughput for KV-only workloads.
Skip SQL entirely; direct B-tree KV API cuts RocksDB memory from 121MB to 11MB.
LSM-tree with SSI, column families, and adaptive compaction—solid database primitives, nothing novel.
Yet another benchmarking tool, but specifically for key-value stores instead of databases.
Educational LSM implementation in pure Go; zero production use case demonstrated.
Single-file mmap storage plus an HNSW vector index and explicit graph edges is an elegant, practical combo — think "SQLite for agent memory" with CRC-32 crash recovery and zero-server convenience. The C++20 core + nanobind gives zero-copy NumPy views and GIL-free searches, and the claimed FAISS-like throughput makes this genuinely interesting for local setups; main caveat is build/toolchain friction and how rich the surrounding ecosystem becomes.