Skip to main content

paxodin

A typed Python interface to the Paxos-Odin consensus engine. Synchronous sessions, asyncio, explicit durability, and errors that explain how to recover. Python 3.12+; no runtime Python dependencies.

Website · Book · API reference · Design records

Install

uv add paxodin
# Or: python -m pip install paxodin

Release wheels contain the native Odin library. Supported release targets are Linux x86-64, macOS 12+ on Apple Silicon, and Windows x86-64, tested on CPython 3.12, 3.13 and 3.14. Source builds require Odin dev-2026-09 or newer. Free-threaded Python and PyPy are not qualified. Check the wheel's manylinux tag for its Linux glibc floor.

Try three participants

from paxodin.testing import Cluster

with Cluster(3) as cluster:
    receipt = cluster.append(b"set counter 41")
    print(receipt.slot, receipt.value)

Cluster is an in-process, memory-backed test helper. It is not durable. For a production participant, provide FileJournal, FileHistory, and an authenticated transport to Session or AsyncSession; see the API guide.

What success means

An append receipt means this participant knows the command in its durable, contiguous released prefix. It does not mean your application has applied it or that every peer has received it. A timeout ends the wait; it cannot cancel a proposal that peers might choose. Use command ids and application deduplication when retrying.

The initial profile supports seven members, a 256-slot window, a 64-slot recovery chunk and 1,024-byte commands. The Python SDK supports fixed membership and single-leader replication. Reconfiguration, rotating ownership and learners are available in the Odin core but not exposed by this SDK release. Neither layer provides lease-based local reads.

Develop

From python/paxodin/ in the monorepo:

uv sync --locked
uv run pytest
uv run ruff check .
uv run mypy

Detailed documentation is maintained in Typst in the book and POD 0011. The API reference is generated from Python docstrings. The separate paxodin CLI in GitHub releases drives repository builds, tests, simulations and documentation; installing the Python package does not install that executable.

Authors and license

Authored by Vikrant Rathore, with assistance from Ronak Rathore. Copyright © 2026 Vikrant Rathore and Ronak Rathore. Released under the MIT License.

Release files for paxodin 0.2.0

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

Source distribution (sdist)

Source distribution for paxodin 0.2.0
File Size Uploaded
paxodin-0.2.0.tar.gz 118.8 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for paxodin 0.2.0
File Interpreter ABI Platform
paxodin-0.2.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
paxodin-0.2.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
paxodin-0.2.0-py3-none-macosx_12_0_arm64.whl Python 3 none macOS 12.0+ ARM64 Details

Total release size: 746.0 kB

Release files / paxodin-0.2.0.tar.gz

Download URL paxodin-0.2.0.tar.gz
Size 118.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9de22fe79c61f02d0dab1b5b750c95519b95f8b52aa219647a8a9b613ff88e0d
BLAKE2b-256 checksum
How to use checksums
42ac222f81b43011a379bcbe4330c17a6858c932a1e26744057ff59d0734d984
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / paxodin-0.2.0-py3-none-win_amd64.whl

Download URL paxodin-0.2.0-py3-none-win_amd64.whl
Size 269.8 kB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
e132590196a2d90d36c3c4d610af7c88ca0140634614268fc85ac3f34385d69b
BLAKE2b-256 checksum
How to use checksums
0a7d180a573e2d1a71ada9d1ca6e56fc7140d169bff66a90b815f15b567c823c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / paxodin-0.2.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL paxodin-0.2.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 185.0 kB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
06cdc23e7f5626da2a06099f6cd0775902a0324505070bc794dc306115f12e67
BLAKE2b-256 checksum
How to use checksums
a045fef7831d026b2bc1c07b2085a0256eb635c6db5ed179ca5cc49f94e693db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / paxodin-0.2.0-py3-none-macosx_12_0_arm64.whl

Download URL paxodin-0.2.0-py3-none-macosx_12_0_arm64.whl
Size 172.4 kB
Tags Python 3 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
87993b152537dde89d48c7b3c9b366011e3518b3cead7fd59fe2b6b3068ada17
BLAKE2b-256 checksum
How to use checksums
ecbb7c763121fae0eade04cdbea4a7348ce964eb829f681e9600271a3953f557
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.2.0 This release

4 release files

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