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.10.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.10.0
File Size Uploaded
transports-0.10.0.tar.gz 1.5 MB Details

Built distributions (wheels)

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

Total release size: 11.7 MB

Release files / transports-0.10.0.tar.gz

Download URL transports-0.10.0.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
0788cad98529c727df614a32b00a0a28e6f1dfe2ec8003e0ca3a7014d2bd7df1
BLAKE2b-256 checksum
How to use checksums
4185a993405363dcf73692b558828c4ff19c9c7603e5e0ed27fbb548df2148d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

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

Download URL transports-0.10.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
5e0bb0bb96817ff8678bb2c0f785ac8fa0e49d231783acfeffdc8942833cbe38
BLAKE2b-256 checksum
How to use checksums
bc3465f7cca13d5d1a3d5050e56dc1b0f612291fecc2dd43fbf11c1034497daf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

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

Download URL transports-0.10.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
57c989c3e0372deecb26255fcd890286978b40bb9cca4cca1d51b5183e91ca96
BLAKE2b-256 checksum
How to use checksums
eb09e213194e4be15d5b5ad65922823724248bd084c74af422dcfb1b994e0a67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

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

Download URL transports-0.10.0-cp311-abi3-manylinux_2_28_x86_64.whl
Size 2.2 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
9ad58b226bc5671e5e9c9dd269cd63f132daf48fdd4d453fa92010411e781bfc
BLAKE2b-256 checksum
How to use checksums
6d78ca8286976e87df55eef0b816537e1c6ea8cc7aa44291a878ce301570f8e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

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

Download URL transports-0.10.0-cp311-abi3-manylinux_2_28_aarch64.whl
Size 2.1 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
8f43a6b32320860f760c57b9cf67052f8ce540868e805d9033e58342a87b54c6
BLAKE2b-256 checksum
How to use checksums
8f8e924bf6c8e5afec94e596a9c784830fffd1bd15e31db9135627ee48cd6237
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

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

Download URL transports-0.10.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
6cc40615866d194a63cdf52b67ecac1d98dc3058d581b75edf2b50672818383b
BLAKE2b-256 checksum
How to use checksums
fb71e4ff3371e063e7c861c49b5403bd92b539a7694574fb8547422b3ec74fd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

This release

0.10.0 This release

6 release files

0.9.0

6 release files

0.8.6

6 release files

0.8.5

6 release files

0.8.4

6 release files

0.8.3

6 release files

0.8.2

6 release files

0.8.1

6 release files

0.8.0

5 release files

0.7.0

5 release files

0.6.0

4 release files

0.5.0

4 release files

0.4.0

4 release files

0.3.0

4 release files

0.1.2

5 release files

0.1.1

0.1.0

2 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