Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ZydecoDB Python driver

Official Python client for ZydecoDB — a MongoDB-style document store without the fluff. Pure standard library, no runtime dependencies.

Install

pip install zydecodb

Requires Python 3.9+. (Working from a checkout of this repo: pip install -e clients/python.)

Quick start

from zydecodb import Client

# Plain TCP (localhost). For TLS: Client(..., api_key="YOUR_KEY", tls=True)
with Client("127.0.0.1", 9470, api_key="YOUR_KEY") as db:
    users = db.collection("users")
    users.create_index(["email"], unique=True)

    uid = users.insert_one({"email": "ada@example.com", "name": "Ada", "age": 30})

    for u in users.find({"age": {"$gte": 18}}, sort=[("age", True)]):
        print(u["name"], u["age"])

    users.update_one({"_id": uid}, {"$inc": {"age": 1}})
    print(users.count_documents())

What you get

  • Connection pooling. Client owns a thread-safe pool (pool_size, default 8) and is safe to share across threads.
  • Automatic retries with backoff. Transient transport failures and server EngineBusy responses are retried (full-jitter exponential backoff) for operations that are safe to repeat. Operator updates and deletes are never retried automatically.
  • Keepalive. Idle pooled connections are validated with a Ping on checkout and transparently replaced if dead.
  • Typed error taxonomy. Non-OK responses raise a specific subclass: ConflictError (unique-index violation), AuthError, ServerBusyError, InvalidRequestError, or the base ServerError — each carrying the wire status byte. Transport problems raise ConnectionError.
  • MongoDB-style Collection API. insert_one/many, find/find_one, update_one/many, delete_one/many, count_documents, distinct, create_index, with $-operators, sort, projection, and skip/limit. Pagination is repeatable-read across pages.
  • Raw KV with TTL. Side-channel put (with expires_at), get, and delete methods on Client for session data that needs a time-to-live.
  • TLS. Pass tls=True for system CA defaults, or an ssl.SSLContext for custom roots / verification.

Durability

Writes are durable (fsync-on-commit) by default. For latency-sensitive, loss-tolerant writes, pass relaxed=True to acknowledge before the fsync. It is available on every write: insert_one, replace_one, update_one, update_many, delete_one, and delete_many.

users.insert_one(doc, relaxed=True)
users.update_one({"_id": "ada"}, {"$inc": {"hits": 1}}, relaxed=True)
users.delete_many({"stale": True}, relaxed=True)

Running the tests

Unit tests for the wire codecs need no server:

cd clients/python
pip install -e ".[dev]"
pytest tests/test_protocol.py

Integration tests run against a live server selected by environment variables (skipped automatically if it is unreachable):

ZYDECODB_TEST_HOST=127.0.0.1 ZYDECODB_TEST_PORT=9470 pytest

Release files for zydecodb 0.9.0b1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zydecodb 0.9.0b1
File Size Uploaded
zydecodb-0.9.0b1.tar.gz 14.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zydecodb 0.9.0b1
File Interpreter ABI Platform
zydecodb-0.9.0b1-py3-none-any.whl Python 3 none any Details

Total release size: 28.1 kB

Release files / zydecodb-0.9.0b1.tar.gz

Download URL zydecodb-0.9.0b1.tar.gz
Size 14.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e5a5e5bf4dea4f4a85eee3712df063beb51531bf21ef518a23e260ad7a11d0bd
BLAKE2b-256 checksum
How to use checksums
2ea47ebf0b6e0dddab9fd2974cd75fb4d258f204a37de84873f163573160f359
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release files / zydecodb-0.9.0b1-py3-none-any.whl

Download URL zydecodb-0.9.0b1-py3-none-any.whl
Size 13.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
59528c85e24f64327de70afc2094ff3d488c17692e1bc12434535407593ffa3e
BLAKE2b-256 checksum
How to use checksums
1b3acdb0a71685d39eb44ae4934f49de046367f1a317e111e6921c166110b81d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page