How crossbario/autobahn-python works
Autobahn|Python is a Python framework for WebSocket and WAMP clients and servers, with Twisted and asyncio integrations. An application creates a protocol or WAMP component; the runtime connects it to a peer, exchanges WebSocket messages, and, for WAMP, carries routed RPC and publish/subscribe traffic through a WAMP router. The graph also preserves authentication, serialization, compression, RawSocket, and FlatBuffers capabilities. The README establishes the main workflows; sampled source excerpts are limited, so uncertain internal dispatch links are omitted.
Main entry points: websocket/protocol.py WebSocket protocol · wamp/protocol.py WAMP protocol · websocket.py WAMP over WebSocket · component.py WAMP session
Components 20
Runtime integrations
- asyncio API
src/autobahn/asyncio/websocket.py - Twisted API
src/autobahn/twisted/websocket.py - asyncio components
src/autobahn/asyncio/component.py - Twisted components
src/autobahn/twisted/component.py
WebSocket
- WebSocket protocol
src/autobahn/websocket/protocol.py - Compression
src/autobahn/websocket/compress.py - UTF-8 validation
src/autobahn/websocket/utf8validator.py
WAMP
- WAMP session
src/autobahn/wamp/component.py - WAMP protocol
src/autobahn/wamp/protocol.py - WAMP over WebSocket
src/autobahn/wamp/websocket.py - WAMP authentication
src/autobahn/wamp/auth.py - WAMP messages
src/autobahn/wamp/message.py
Serialization
- WAMP serializers
src/autobahn/wamp/serializer.py - FlatBuffers runtime
src/autobahn/flatbuffers/builder.py
RawSocket
- asyncio RawSocket
src/autobahn/asyncio/rawsocket.py - Twisted RawSocket
src/autobahn/twisted/rawsocket.py - RawSocket core
src/autobahn/rawsocket/__init__.py
Other components
- Application
- WebSocket peer
- WAMP router
Connections 24
- Application → asyncio API: uses
- Application → Twisted API: uses
- asyncio API → WebSocket protocol: runs protocol
- Twisted API → WebSocket protocol: runs protocol
- WebSocket protocol → WebSocket peer: exchanges frames
- WebSocket protocol → Compression: compresses messages
- WebSocket protocol → UTF-8 validation: validates text
- Application → asyncio components: creates component
- Application → Twisted components: creates component
- asyncio components → WAMP session: runs session
- Twisted components → WAMP session: runs session
- WAMP session → WAMP protocol: issues actions
- WAMP protocol → WAMP authentication: authenticates
- WAMP protocol → WAMP messages: handles messages
- WAMP protocol → WAMP serializers: serializes messages
- WAMP protocol → WAMP over WebSocket: uses transport
- WAMP over WebSocket → WebSocket protocol: carries WAMP
- WAMP over WebSocket → WAMP router: routes traffic
- WAMP serializers → FlatBuffers runtime: uses encoding
- Application → asyncio RawSocket: uses
- Application → Twisted RawSocket: uses
- asyncio RawSocket → RawSocket core: uses
- Twisted RawSocket → RawSocket core: uses
- RawSocket core → WAMP router: exchanges traffic