Skip to main content
transports logo, concentric circles with a line connecting them with points

Build Status codecov License PyPI

transports moves typed models across any wire as incremental patches.

A model is defined once as a pydantic model, stdlib dataclass, or msgspec struct. A Python process hosts it and mutates it normally, and transports sends only the patch needed to update a remote mirror. The same Rust core drives Python (PyO3) and JavaScript (wasm), so both sides share the same Value type, diff, patch application, and codecs.

import transports
from pydantic import BaseModel

class Device(BaseModel):
    name: str
    on: bool = False

session = transports.Session()
lamp = Device(name="lamp")
model_id = session.host(lamp)

lamp.on = True
print(session.drain())
# [(1, {'rev': 1, 'ops': [{'Set': {'path': [{'Key': 'on'}], 'value': {'Bool': True}}}]})]

Install

pip install transports
pip install "transports[connections]"   # WebSocket server/client adapters
pip install "transports[sse]"           # Server-Sent Events adapter
pip install "transports[jupyter]"       # Jupyter comm adapter

Documentation

Tutorial

Quickstart builds one hosted model and mirrors it with the in-process server/client protocol.

How-to guides

Model bridges covers pydantic, dataclasses, msgspec, schemas, and plain JavaScript objects. Connections covers WebSocket, SSE, Jupyter comm, and anywidget adapters. Codecs covers JSON, MessagePack, and custom codecs. Multi-tenancy and sharing covers tenant isolation, shared models, and merge strategies. Pyodide covers building and loading transports in a browser.

Reference

API reference lists the Python API. Wire protocol reference describes Value, patch operations, protocol messages, codecs, and model ids. Benchmark results reports recorded server fan-out latency, completion time, and resource use.

Explanation

Concepts explains why transports uses incremental patches, server-owned revisions, a shared Rust core, and transport-agnostic adapters.

Metadata

Release files for transports 0.11.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 transports 0.11.0
File Size Uploaded Provenance Actions
transports-0.11.0.tar.gz 1.5 MB Without provenance Details for transports-0.11.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for transports 0.11.0
File Actions
transports-0.11.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl CPython 3.14 CPython 3.14 PyEmscripten 2026.0+ WebAssembly Details for transports-0.11.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl
transports-0.11.0-cp311-abi3-win_amd64.whl CPython 3.11 abi3 Windows x86-64 Details for transports-0.11.0-cp311-abi3-win_amd64.whl
transports-0.11.0-cp311-abi3-manylinux_2_28_x86_64.whl CPython 3.11 abi3 Linux glibc 2.28+ x86-64 Details for transports-0.11.0-cp311-abi3-manylinux_2_28_x86_64.whl
transports-0.11.0-cp311-abi3-manylinux_2_28_aarch64.whl CPython 3.11 abi3 Linux glibc 2.28+ ARM64 Details for transports-0.11.0-cp311-abi3-manylinux_2_28_aarch64.whl
transports-0.11.0-cp311-abi3-macosx_11_0_arm64.whl CPython 3.11 abi3 macOS 11.0+ ARM64 Details for transports-0.11.0-cp311-abi3-macosx_11_0_arm64.whl

Total release size: 12.1 MB

Release files / transports-0.11.0.tar.gz

Download URL transports-0.11.0.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
00193ca2f71f02c7dcba42b1d9f6dbcf26fe4660e75374d227b4faf207879adf
BLAKE2b-256 checksum
How to use checksums
2d669d039385b0a1f7548a7ecd31e2b294c9e3091fe48e5447ffb2928510cdb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / transports-0.11.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl

Download URL transports-0.11.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Size 1.8 MB
Tags CPython 3.14 PyEmscripten 2026.0+ WebAssembly
SHA-256 checksum
How to use checksums
a33f4cf8c5d2b92da036fb702e4b4c3d95c0ac72e6032708fdbc64efa237cc11
BLAKE2b-256 checksum
How to use checksums
5314d5b0fa0794b25512781c038f4f9dcc905f5df7694880d6fe210913ad3be4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / transports-0.11.0-cp311-abi3-win_amd64.whl

Download URL transports-0.11.0-cp311-abi3-win_amd64.whl
Size 2.1 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
c44df7ce396ce407c78f3d80fa14e946baeaa5e5646fcc2ef9a3f39b30c68255
BLAKE2b-256 checksum
How to use checksums
aa8676db38497be517e58f8431e60a176f11c79058b48cea2b6dff944c4fc94a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / transports-0.11.0-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL transports-0.11.0-cp311-abi3-manylinux_2_28_x86_64.whl
Size 2.3 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
0cc822daae0ef2dec622503d0651fbedbdb87a7676eaeb527e25a5fbeaf5cc08
BLAKE2b-256 checksum
How to use checksums
07fa10f9f1adbc00a72c4d7a3fb4d357a4bbec9d2eca7f5746e03d3902354c45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / transports-0.11.0-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL transports-0.11.0-cp311-abi3-manylinux_2_28_aarch64.whl
Size 2.2 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
adc27c90437fc74f99eacabe12090f78df20762bf5df3dbc7da7fe081209630f
BLAKE2b-256 checksum
How to use checksums
9a14195092e4f4ad5efcf7f8cd2e6c3708361341df5eb03a9d068965b83a0c2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / transports-0.11.0-cp311-abi3-macosx_11_0_arm64.whl

Download URL transports-0.11.0-cp311-abi3-macosx_11_0_arm64.whl
Size 2.1 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a0976e28b885bb123ce98015026704e6c0c566d8ccea1df14e18b824074db2b2
BLAKE2b-256 checksum
How to use checksums
752ec756374452693c5fbf0109eba542ed1d0b36cdbfe70d041f181c09a59a23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Security for transports 0.11.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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