Why NimbusKV?
Most apps reinvent the same small-but-critical pieces: TTL bookkeeping, safe concurrent updates, and reactive hooks. NimbusKV packages those into a single drop-in - an immutable-snapshot store where reads never block and writers retry instead of locking - with optional durability through SQLite, Redis, MySQL, or PostgreSQL. Minimal API, maximum control.
When to use it
- Session storage with automatic expiry
- One-time tokens / OTPs and temporary secrets
- Coordinating threads or workers without a polling loop (wait_for)
- High-concurrency counters and shared state on free-threaded Python
- Real-time workflows that react to key changes or expiry
Quick usage
# quick example (python)
from nimbuskv import NimbusKV
ld = NimbusKV() # in-memory, default
ld.set('foo', 123)
print(ld.get('foo')) # 123
# reactive, no polling
ld.subscribe(lambda k, e, old, new: print(k, e, old, '->', new))
ld.atomic('counter', lambda v: (v or 0) + 1) # safe under concurrent writers