⚡ overdrive-db
Embeddable hybrid SQL+NoSQL document database for Python
Like SQLite, but for JSON. Zero config. No server. ACID transactions.
Install
pip install overdrive-db
Requires the native
overdrive.dll(Windows) /liboverdrive.so(Linux) /liboverdrive.dylib(macOS) in thelib/{os}-{arch}/directory. Download from GitHub Releases.
Quick Start
from overdrive import OverdriveDb
odb = OverdriveDb.open("myapp.odb")
# Create table
odb.create_table("users")
# Insert — returns the generated _id
id = odb.insert("users", {"name": "Alice", "age": 30})
# Get by ID
doc = odb.get("users", id)
print(doc) # {'_id': '...', 'name': 'Alice', 'age': 30}
# SQL Query
rows = odb.query("SELECT * FROM users WHERE age > 25")
# Update
odb.update("users", id, {"age": 31})
# Delete
odb.delete("users", id)
odb.close()
Context manager:
with OverdriveDb.open("myapp.odb") as odb:
odb.create_table("users")
id = odb.insert("users", {"name": "Bob"})
print(odb.get("users", id))
API Reference
Open / Close
odb = OverdriveDb.open(path) # plain open
odb = OverdriveDb.open(path, password="secret") # encrypted
odb = OverdriveDb.open(path, engine="RAM") # in-memory
odb.sync() # flush to disk
odb.close() # release handle
OverdriveDb.version() # native library version string
Tables
odb.create_table("users")
odb.drop_table("users")
odb.list_tables() # → ['users', 'products', ...]
odb.table_exists("users") # → True / False
CRUD
| Method | Returns | Description |
|---|---|---|
odb.insert(table, doc) |
str (_id) |
Insert a document |
odb.insert_many(table, docs) |
list[str] |
Insert multiple documents |
odb.get(table, id) |
dict | None |
Get document by _id |
odb.update(table, id, patch) |
bool |
Update document by _id |
odb.delete(table, id) |
bool |
Delete document by _id |
odb.count(table) |
int |
Count documents in table |
Query
# SQL query — returns list of dicts
rows = odb.query("SELECT * FROM users ORDER BY age DESC LIMIT 10")
# Full-text search
results = odb.search("users", "Alice")
Transactions
from overdrive import IsolationLevel
# Callback style (auto-commit / auto-abort)
def transfer(odb):
odb.insert("logs", {"event": "login"})
odb.transaction(transfer, IsolationLevel.SERIALIZABLE)
# Manual style
txn = odb.begin_transaction(IsolationLevel.READ_COMMITTED)
try:
odb.insert("logs", {"event": "login"})
odb.commit_transaction(txn)
except Exception:
odb.abort_transaction(txn)
raise
Isolation Levels:
| Name | Value |
|---|---|
IsolationLevel.READ_UNCOMMITTED |
0 |
IsolationLevel.READ_COMMITTED |
1 (default) |
IsolationLevel.REPEATABLE_READ |
2 |
IsolationLevel.SERIALIZABLE |
3 |
Integrity Check
report = odb.verify_integrity()
print(report) # {'status': 'ok', ...}
6 Storage Engines
odb = OverdriveDb.open("app.odb") # Disk (default)
odb = OverdriveDb.open("cache.odb", engine="RAM") # in-memory
odb = OverdriveDb.open("vecs.odb", engine="Vector") # embeddings
odb = OverdriveDb.open("ts.odb", engine="Time-Series") # metrics/IoT
odb = OverdriveDb.open("g.odb", engine="Graph") # social graphs
odb = OverdriveDb.open("q.odb", engine="Streaming") # event queue
More SDKs
pip install overdrive-db # Python ← you are here
npm install overdrive-db # Node.js
cargo add overdrive-db # Rust
go get github.com/ALL-FOR-ONE-TECH/overdrive-db-go@v1.0.0
Links
Release files for overdrive-db 2.4.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| overdrive_db-2.4.6.tar.gz | 8.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| overdrive_db-2.4.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.0 MB
Release files / overdrive_db-2.4.6.tar.gz
| Download URL | overdrive_db-2.4.6.tar.gz |
|---|---|
| Size | 8.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cb4cba2e4433a59ebafe5d4c5c853c46cf5dee6f4f00f7efb3eb44abcb5ddc21
|
|
BLAKE2b-256 checksum How to use checksums |
8ce7a6283b5cbd07a55df1a65ff6e32e49c93a7367cad931819fd33a79972279
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / overdrive_db-2.4.6-py3-none-any.whl
| Download URL | overdrive_db-2.4.6-py3-none-any.whl |
|---|---|
| Size | 8.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
75a4be987ec301d4ec513d7e62135c17965a9c3b22e2bfb0c48d5dc8a38c7540
|
|
BLAKE2b-256 checksum How to use checksums |
6ac58cb778ddabfdab6168d41fd4e1f987a83a1a34193c58a706d4d2e8928c84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|