01
Drop-in thinking
Use familiar clients, databases, collections, cursors, filters, updates, indexes, projections, and aggregation without operating MongoDB.
Explore the APIVersion 1.3.0 is live
A familiar PyMongo-style document API backed by local storage. Ship tests, tools, prototypes, and full applications without standing up a database server.
Python 3.9–3.14 Sync + async macOS · Linux · Windows
import tinymongo as pymongo
client = pymongo.MongoClient(
tinymongo_folder="./data",
backend="sqlite",
)
users = client.app.users
users.insert_one({
"name": "Ada",
"score": 98,
})
result = users.find_one({
"score": {"$gte": 90}
})
{ "name": "Ada", "score": 98 }
0.08 ms
01 No daemon
08 Storage choices
54ksharded point reads/s
425ksharded scan docs/s
100%tested coverage
0services required
One API, your storage
TinyMongo keeps the document model you know while letting the application own its data. Begin in memory, persist to SQLite, analyze with Parquet, or point the same interface at remote SQL.
01
Use familiar clients, databases, collections, cursors, filters, updates, indexes, projections, and aggregation without operating MongoDB.
Explore the API02
Memory for tests. JSON for portability. SQLite for transactions. Columnar files for analytical workflows.
03
The experimental sharded SQLite backend spreads stable IDs across independent WAL files for concurrent writers.
04
Storage, serialization, and lock waits run outside the event loop. The synchronous and asynchronous APIs share the same behavior.
Backend spectrum
Choose at client construction. Your application code keeps the same document-oriented shape while the backend handles persistence.
01
Isolated, process-local storage for tests and disposable workflows.
zero I/O02
Human-readable, portable persistence with atomic file replacement.
default03
Table-native storage, transactions, indexes, WAL, and precise point reads.
production04
Independent files unlock concurrent embedded writers and parallel reads.
experimental05
Columnar options for local analytics and interoperable datasets.
analytics06
Move beyond one machine while preserving the TinyMongo interface.
remote SQLLive playground
This is a real TinyMongo query against a fixed in-memory collection. Try a preset or edit the safe JSON request. No account, persistence, or executable code.
Press “Run query” to execute against TinyMongo 1.3.0.
Built to be inspected
Read the implementation, run the full test matrix, reproduce the benchmarks, and choose exactly which optional dependencies enter your project.
CI matrix passing
CPython 3.9✓
CPython 3.10✓
CPython 3.11✓
CPython 3.12✓
CPython 3.13✓
CPython 3.14✓
macOSLinuxWindows
Your data. Your process.
One package. A familiar API. Storage that starts wherever your application does.