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

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.8.5
File Size Uploaded
transports-0.8.5.tar.gz 941.7 kB Details

Built distributions (wheels)

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

Total release size: 7.5 MB

Release files / transports-0.8.5.tar.gz

Download URL transports-0.8.5.tar.gz
Size 941.7 kB
Tags Source
SHA-256 checksum
How to use checksums
498229fd54bbae76f0ec5e05a33cc0ad483b8a491d35b490bae5e1739e4ec650
BLAKE2b-256 checksum
How to use checksums
11b0af6c2800161b6b03bdda108daeeec33390ff20ea72b19a69929471c7c92b
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.8.5-cp314-cp314-pyemscripten_2026_0_wasm32.whl

Download URL transports-0.8.5-cp314-cp314-pyemscripten_2026_0_wasm32.whl
Size 1.1 MB
Tags CPython 3.14 PyEmscripten 2026.0+ WebAssembly
SHA-256 checksum
How to use checksums
92a632df25e04807c9adad5aca96646d87222796a035b5e703e24501db324b30
BLAKE2b-256 checksum
How to use checksums
0791f50516a7286183eba30352aecf4514f202089ac7c5618d9fd5ecb6350abb
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.8.5-cp311-abi3-win_amd64.whl

Download URL transports-0.8.5-cp311-abi3-win_amd64.whl
Size 1.3 MB
Tags CPython 3.11 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
29f3e9a3a5e6ae341b013110a3d28f2a0df55ba9fde24ae9b224e7a712bfef4c
BLAKE2b-256 checksum
How to use checksums
76ffd09ecc9c163885ae79dd9fabdc75507a065cdd402d8384b462f30f923eaa
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.8.5-cp311-abi3-manylinux_2_28_x86_64.whl

Download URL transports-0.8.5-cp311-abi3-manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
6d2354bd261a5a60a914073de520d886321d32c379aba0cd3865ca9f2683233d
BLAKE2b-256 checksum
How to use checksums
36def98cc5805dc8d2a98e2aa96b1243bc792301ce5d90c005fd93c811be8cd9
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.8.5-cp311-abi3-manylinux_2_28_aarch64.whl

Download URL transports-0.8.5-cp311-abi3-manylinux_2_28_aarch64.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
0e7be5d41620be07b0ef2f3af65ed6439408335ee9c9b6a36a16a8870671002d
BLAKE2b-256 checksum
How to use checksums
45c635c4df34af76445fde7dea92325229d5dd758435270167d024a416d92aec
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.8.5-cp311-abi3-macosx_11_0_arm64.whl

Download URL transports-0.8.5-cp311-abi3-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.11 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1894b100237cc4d9496c13566752909aea8e118041b328eb14ff2fb4d6e8c06d
BLAKE2b-256 checksum
How to use checksums
c6500881e03e3c0d9330d683dc16dfa2baa28842a8fb6e97e4b17f0ebe2eb95f
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

0.10.0

6 release files

0.9.0

6 release files

0.8.6

6 release files

This release

0.8.5 This release

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