[Twisted-Python] Autobahn 0.7.0 released

Tobias Oberstein tobias.oberstein at tavendo.de
Thu Jan 2 06:26:34 MST 2014


Hi,

I am happy to announce the release of AutobahnPython 0.7.0

https://github.com/tavendo/AutobahnPython
https://pypi.python.org/pypi/autobahn

This release brings 4 major features:

1) full support for Twisted endpoints, a wrapping protocol/factory and a generic endpoint forwarder

https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/websocket/echo_endpoints
https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/websocket/wrapping

2) 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.

3) 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:

Twisted:
https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/websocket/echo

Asyncio:
https://github.com/tavendo/AutobahnPython/tree/master/examples/asyncio/websocket/echo

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

Autobahn 0.7.0:
from autobahn.twisted.websocket import WebSocketServerProtocol
or
from autobahn.asyncio.websocket import WebSocketServerProtocol

4) Use of Interfaces

The core Autobahn interfaces that applications are using are now properly
defined using "zope.interface" machinery:

http://autobahn.ws/static/reference/python/websocketintro.html#interface-definition

The interfaces are what we are committed to keep stable up from now.

==
Notes:

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.

Cheers,
/Tobias



More information about the Twisted-Python mailing list