Metadata-Version: 2.4
Name: mkvdb
Version: 0.2
Summary: MongoDB-backed async/sync key–value store with a super tiny API.
Keywords: key-value,database,mongodb,asyncio,motor,kv,cache
Author-email: Harrison Erd <harrisonerd@gmail.com>
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Classifier: Framework :: AsyncIO
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries :: Python Modules
License-File: LICENSE
Requires-Dist: pymongo>=4.15.5
Project-URL: Repository, https://github.com/patx/mkvdb

mkvDB is a unified sync + async key-value store backed by MongoDB. It gives you a 
dead-simple Redis-like API (set, get, remove, etc.) while letting MongoDB handle all 
the heavy concurrency lifting — meaning it’s safe across threads, processes, and 
ASGI workers out of the box. Sync usage uses `MongoClient` (thread-safe). Async usage
uses `AsyncMongoClient` (non-blocking, ASGI/uvicorn safe). Same API either way.
[Read the docs here.](https://thoughts.harrisonerd.com/post/693a32cee5c413ce5f061c19).

```
from mkvdb import Mkv

db = Mkv("mongodb://localhost:27017")

# Sync
db.set("key", "value")
db.get("key")

# Async
await db.set("a", 123)
val = await db.get("a")
```


