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.12.1

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.12.1
File Size Uploaded Provenance Actions
transports-0.12.1.tar.gz 2.0 MB Without provenance Details for transports-0.12.1.tar.gz

Built distributions (wheels)

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

Total release size: 15.7 MB

Release files / transports-0.12.1.tar.gz

Download URL transports-0.12.1.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
7253fae4dea3d3a601c8ecd679f763b322cd4b2ac654660d20c93133032815b8
BLAKE2b-256 checksum
How to use checksums
a34140ecfd3d3bc7c4fbe67e07e49e5b9904503123cc3ce0367a863b12997b86
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.12.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl

Download URL transports-0.12.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Size 2.4 MB
Tags CPython 3.14 PyEmscripten 2026.0+ WebAssembly
SHA-256 checksum
How to use checksums
4b73db1cfdbe722e7cf27a97e43a1d9cc29b0ce3e4a8d4aa11424f0e6651d750
BLAKE2b-256 checksum
How to use checksums
0d6607cbb3a446abe1c359a4742114c503eca4716b2e3afe2f73cb6e7d12d769
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.12.1-cp311-abi3-win_amd64.whl

Download URL transports-0.12.1-cp311-abi3-win_amd64.whl
Size 2.8 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
4bcf24e6ce4120d0d047dad6e7fdfc840151903ab649ba9f9ebc94a569622adb
BLAKE2b-256 checksum
How to use checksums
2be3dd7d4322161551de8ec3a825e949bb34f80c5e865201f4eb27a551aa047b
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.12.1-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL transports-0.12.1-cp311-abi3-manylinux_2_28_x86_64.whl
Size 2.9 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
2dd35f3c878a9564b26c9fa33dd1eeb508f0f2d4e90f6f46df97bda3ed1716c0
BLAKE2b-256 checksum
How to use checksums
e01aa82cb74d4ceaacf1390a9c1fd66043f757f7d345089847d41d8c86fd9a41
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.12.1-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL transports-0.12.1-cp311-abi3-manylinux_2_28_aarch64.whl
Size 2.8 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
302f06d9be314894dd72a5915e6d5b4b13f5efa34afcab5bb73c8c192eca177d
BLAKE2b-256 checksum
How to use checksums
8e4207d8032afe12a3ce7189bdfc58b1bdc5748cd8479b74ebd670e1e9703ee5
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.12.1-cp311-abi3-macosx_11_0_arm64.whl

Download URL transports-0.12.1-cp311-abi3-macosx_11_0_arm64.whl
Size 2.8 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
80a4669611d8d9ed98c47c5a824ff0cd36ef6c7dc16bc104b91cca101c55554d
BLAKE2b-256 checksum
How to use checksums
6eb8bee5a89f03143b4cc82582148f89f78213de86b156d2b504c4f721769cff
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.12.1

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