I am happy to announce the release of AutobahnPython 0.7.0
This release brings 4 major features:
1) Support for Python 3
Autobahn now works with Twisted running on Python 3.
Note: Not all examples work with Twisted/Python3, since Python 3 support with Twisted is work-in-progress.
2) Support for asyncio
Asyncio (http://docs.python.org/3.4/library/asyncio.html) is a new networking framework that comes built into Python 3.4, and that can be installed on Python 3.3.
Autobahn now fully (with all features) supports both Twisted (on Python 2 and 3) and asyncio (on Python 3.3+).
Here is an example that shows how to do WebSocket on both:
The application code is very similar or even identical.
Note: Support for 2) and 3) required major refactoring under the hood. But to upgrade existing code, it should be sufficient to replace respective imports:
Autobahn < 0.7.0:
from autobahn.websocket import WebSocketServerProtocol
from autobahn.twisted.websocket import WebSocketServerProtocol or from autobahn.asyncio.websocket import WebSocketServerProtocol
3) full support for Twisted endpoints, a wrapping protocol/factory and a generic endpoint forwarder
4) Use of Interfaces
The core Autobahn interfaces that applications are using are now properly defined using "zope.interface" machinery:
The interfaces are what we are committed to keep stable up from now.
We've been working hard to make sure everything still works as previously, but the changes in the code base are large. So please forgive if there are glitches popping up.
The upcoming WAMPv2 did not make it into this release (it's already the biggest release since a long time).
WAMPv2 will be introduced gradually over the coming weeks in point releases, and then a final 0.8 release will be rolled out which deprecates WAMPv1.