A Python library providing WebSocket and WAMP (Web Application Messaging Protocol) implementations for Twisted and asyncio.
Autobahn|Python is a library that implements the WebSocket protocol and the Web Application Messaging Protocol (WAMP) for Python. It provides the tools to create clients and servers for real-time, bidirectional communication, with WAMP enabling structured messaging patterns like Remote Procedure Calls and Publish/Subscribe over WebSocket.
Python developers building real-time applications such as chat systems, live dashboards, IoT device communication, or any service requiring low-latency, bidirectional messaging between clients and servers.
Developers choose Autobahn|Python for its robust, asynchronous implementation that works seamlessly with both Twisted and asyncio, its strict standards compliance verified by the Autobahn Testsuite, and its comprehensive feature set including multiple serializers and compression options out-of-the-box.
WebSocket and WAMP in Python for Twisted and asyncio
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Fully asynchronous architecture on both Twisted and asyncio enables efficient real-time communication, with SIMD-accelerated native extensions (NVX) for WebSocket operations as highlighted in the features.
Passes 100% of the Autobahn Testsuite for WebSocket client and server compliance, ensuring reliable conformance to RFC6455 and interoperability with other implementations.
Includes multiple serializers like JSON, MessagePack, CBOR, UBJSON, and Flatbuffers out-of-the-box, providing flexibility for different data formats without extra installs.
Runs on CPython and PyPy with binary wheels for major platforms, and supports advanced compression like Brotli through optional dependencies, optimizing for both performance and compatibility.
WAMP functionality requires an external router such as Crossbar.io or other options, adding infrastructure complexity and maintenance overhead compared to standalone WebSocket solutions.
Features like compression, encryption, and NVX extensions involve multiple optional dependencies (e.g., via 'pip install autobahn[compress]'), which can complicate deployment and increase dependency management.
The NVX (Native Vector Extensions) for SIMD acceleration is marked as ALPHA and not yet complete, limiting guaranteed performance benefits and stability for production use.