muxws
HTTP/2 and HTTP/3 stream semantics over a WebSocket. Many independent, cancellable, bidirectional streams on
one socket, either end able to open one - the model HTTP/2 and HTTP/3 already settled, without needing
QUIC or an HTTP/3 stack. The wire format is the product; Python and TypeScript are the two ports that
exist today, and SPEC.md plus
conformance/ are what a third is
written from.
The mimicry is of semantics, not transport: one TCP connection means one global message order and no per-stream loss recovery - the rationale says what is and is not copied, and the comparison accounts for it frame by frame. muxws is not a router, not a serializer of domain objects, not an authentication mechanism, not a durable store and not an RPC framework.
Install
pip install muxws # extras: [starlette], [websockets], [msgpack]
npm install muxws # optional peers: ws, @msgpack/msgpack
Documentation
docs.velis.si/muxws is the manual - or build it yourself with
npm run docs:dev.
| Server and client in three files | Getting started |
| Every public symbol, both languages | API reference |
| The normative rules, and the fixtures a third port is written from | SPEC.md, conformance/ |
Status
Alpha - the first releases. Two versions that move independently: the wire is already at its
first generation and frozen there (muxws.v1.<codec> is the subprotocol, and v1 stays until a
breaking change earns a new one), while the package carries a leading zero because none of this has
been through a real deployment yet. 1.0 is what the first confirmed production use earns. Python
package muxws (PyPI); npm package muxws, browser entry plus the muxws/node and muxws/msgpack
subpaths.
Licence
MIT. Copyright © 2025 Jure Erznožnik.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file muxws-0.3.0.tar.gz.
File metadata
- Download URL: muxws-0.3.0.tar.gz
- Upload date:
- Size: 85.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edc7e8f0bcccd543aeb5e1cc7fde3280e38955981b76356bbaab768da162c8d4
|
|
| MD5 |
7f9a4c331b1c7edf5635a969caa8fe0f
|
|
| BLAKE2b-256 |
49926dbe9188c59922c21b2f4bd6e028596e5f3f102b3b4b241b6c08babf41d0
|
File details
Details for the file muxws-0.3.0-py3-none-any.whl.
File metadata
- Download URL: muxws-0.3.0-py3-none-any.whl
- Upload date:
- Size: 70.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9539f32a4b8f92b4ddbd477a7484b5fad9d8e1512f67ada0857153e508282fb
|
|
| MD5 |
323615b66306e7096723ca792c9f9e4c
|
|
| BLAKE2b-256 |
073528b879445d7ab8f414e38e9b7b300b0c53a7178fc323c054505d9c98080c
|