RESPLite v1.5.6 is a RESP2 protocol server (compatible with redis clients and redis-cli) backed by SQLite for persistent storage. It provides practical Redis-compatible commands (strings, hashes, sorted sets, lists, full-text search via FTS5) with zero external daemons and minimal memory footprint. Persistence is built-in via WAL-mode SQLite – no AOF, no RDB, no config. Key differentiators: outperforms Redis-in-Docker for single-node workloads (latency benchmarks show 2-4x improvement), supports migration from large Redis instances (tens of GB) without replication, and is embeddable in Node.js scripts. Active development with regular releases.
npm install respliteNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Shows embedding RESPLite in Node.js, connecting with redis client, basic SET/GET, and full-text search via FT.SEARCH.
Ensure your redis client uses RESP2 mode (default with redis npm package < v4, or set { protocol: 2 } in newer clients).Do not rely on WATCH for optimistic locking. Use application-level locks or SQLite WAL conflicts.
Use integer seconds for TTL; do not rely on millisecond precision for expiry.
Use `SAFE_KEYS` instead of `KEYS`, or override commandPolicy.rename to allow KEYS explicitly.
Check `better-sqlite3` is compiled with FTS5 support (npm package includes it). On some Linux distros, rebuild from source may be needed.
Run `npm install better-sqlite3` explicitly if not automatically installed.
Use `SAFE_KEYS` instead of `KEYS`, or pass `{ commandPolicy: { rename: {} } }` to createRESPlite to disable renaming.Configure redis client to use RESP2: `createClient({ socket: { reconnectStrategy: false }, protocol: 2 })`.