• fix: Fix a few typos in docs (#1587)

  • fix: remove log noise from autobahn.websocket.protocol (#1588)

  • new: add more helpers to EthereumKey and CryptosignKey (#1583)

  • new: EIP712 certificate chains, incl. use for WAMP-Cryptosign

  • fix: improve message logging at trace log level

  • fix: forward correct TLS channel ID once the TLS handshake is complete

  • new: add eip712 types for WAMP-Cryptosign certificates

  • new: add more helpers to EthereumKey and CryptosignKey

  • new: add EthereumKey.from_keyfile, CryptosignKey.from_keyfile, CryptosignKey.from_pubkey


  • new: add SecurityModuleMemory.from_config and SecurityModuleMemory.from_keyfile

  • new: moved UserKey from crossbar to autobahn

  • fix: more WAMP-Cryptosign unit tests

  • new: experimental WAMP API catalog support

  • new: regenerate FlatBuffers WAMP messages

  • fix: allow tests to pass without XBR dependencies (#1580)

  • new: Flatbuffers IDL based WAMP payload validation (#1576)

  • fix: restore autobahn.twisted.testing to distribution (#1578)


  • new: WAMP Flatbuffers IDL and schema processing (experimental)

  • new: WAMP-cryptosign trustroot (experimental)

  • new: add wrapper type for CryptosignAuthextra

  • fix: stricted type checking of Challenge; fix cryposign unit test;

  • new: more test coverage

  • fix: reduce log noise

  • fix: forward channel_binding selected in Component client

  • new: expand ISigningKey to provide security_module/key_id (if used)

  • fix: Component cryptosign test

  • fix: add type hints; fix channel_binding

  • new: work on federated realms and secmods

  • new: rename to and work on a.w.CryptosignKey

  • new: add bip44 for cryptosign test

  • fix: remove all txaio.make_logger refs from generic code (#1564)

  • new: initial support for federated WAMP realms via a.x.FederatedRealm/Seeder

  • new: moved utility functions and unit tests for WAMP realm name checking from

  • new: allow list of URLs for transports in a.t.component.Component

  • new: add websocket_options to a.t.wamp.ApplicationRunner

  • new: add stop_at_close flag in

  • fix: reduce log noise (regression) on ApplicationRunner Twisted (#1561)

  • new: allow max_retry_delay==0 for always-immediate auto-reconnect in ApplicationRunner on Twisted

  • new: add websocket_options to WAMP ApplicationRunner on Twisted (#888)

  • new: more type hints and docs


  • fix: can not import autobahn.twisted.util with no-TLS (#1559)


  • new: modernize SessionDetails

  • new: improve ISession/ITransportHandler and implementations (#1557)

  • new: expand and refactor TransportDetails (#1551)

  • fix: misc fixes, add type hints, more docs (#1547)

  • new: key modules for use with WAMP-cryptosign (#1544)

  • fix: string formatting with binary values in TransportDetails.secure_channel_id (#1483)

  • fix: never default set authid/authrole in component authenticators

  • fix: TransportDetails string formatting (fixes #1486)

  • fix: reading private ssh key for cryptosign (fixes #932)

  • fix: do not throw (but log) when leaving a session not joined (#1542)

  • fix: store WAMP authextra received (#1541)


  • fix: split out UI deps into separate dist flavor (#1532)

  • fix: deps for RTD builds (#1540)

  • fix: use and bundle dev deps from requirements file


  • fix: reduce twisted log noise for wamp clients (#1537)

  • fix: roundrobin in WAMP component (#1533)

  • fix: generate_token (#1531)

  • fix: add GitHub URL for PyPi (#1528)


  • fix: auto ping/pong logs should be debug instead of info (#1524)


  • new: add auto-ping/pong configuration knob autoPingRestartOnAnyTraffic (see discussion here).

  • new: extended websocket auto-ping/pong (“heartbeating”) with builtin RTT measurement

  • new: experimental support for transaction_hash in WAMP Publish/Call (see discussion here).

  • new: support decimal numbers WAMP serialization and round-tripping in both JSON and CBOR

  • fix: only depend on cbor2 (for WAMP CBOR serialization), not also cbor

  • fix: PyInstaller and Docker build / CI issues


  • new: support Python 3.10

  • new: allow optional keys in endpoint config validation

  • fix: reset transport retry status when connection succeeds

  • fix: update Docker/PyPy to pypy:3.8-slim


  • fix: autobahn installation in docker (#1503)

  • new: refactor SigningKey class for reusability (#1500, #1501)

  • new: expand XBR node pairing helpers

  • fix: build with nvx by default and don’t publish universal wheel. (#1493)

  • fix: update wamp flatbuffer schema for r2r links

  • fix: don’t clobber factory (#1480)

  • fix: explicitly require setuptools

  • new: expand wamp auth scram and xbr argon2/hkdf (#1479)

  • fix: WebSocket compression, window size (zlib wbits) == 8 is illegal nowerdays (#1477)

  • fix: XBR IDL code generator - all 4 WAMP actions working now

  • new: add automated build of xbrnetwork CLI (single-file EXE) in CI



  • new: use_binary_hex_encoding option for JSON object serializer

  • fix: correct some sphinx doc references

  • new: minimum supported Python (language) version is now 3.7 (on CPython and PyPy)

  • new: more XBR proxy/stub code generation capabilities (RPC call/invoation handlers)

  • fix: wamp-cryptosign loading of keys from SSH agent

  • fix: update Docker image building and build Docker multi-arch images

  • new: add more WAMP-cryptosign signature test vectors and unit tests

  • fix: include XBR code rendering templates in package manifest


  • new: XBR ABI files now via separate package (“xbr”) - substantially reduce package size for non-XBR users

  • fix: circular dependency in “xbr” install flavor (prohibited pip install from github master)

  • fix: XBR package manifest and CLI user profile loading


  • fix: consider ‘wamp.close.goodbye_and_out’ a clean exit (#1450)

  • fix: HASH import as well as improve diagnostics if things go wrong (#1451)

  • fix: add missing jinja2 dependency for XBR CLI (#1447)

  • fix: wamp.close.goodbye_and_out counts as a clean exit (#1370)


  • fix: URL must be re-encoded when doing redirect (#1439)

  • fix: update and migrate CI/CD pipeline to GitHub Actions

  • new: minimum supported Python (language) version is now 3.6 (on CPython and PyPy)


  • fix: derive_bip32childkey traceback (#1436)

  • fix: update and adjust docker files to upstream changes


  • new: CLI commands for WAMP IDL (xbrnetwork describe-schema / codegen-schema)

  • new: add eth address helpers (#1413)

  • new: cryptosign authextra allow arbitrary keys (#1411)

  • fix: adapt to planet api prefix change (#1408)

  • fix: Type check improve (#1405)


  • new: add market login eip. expose helpers (#1402)


  • fix: xbr fixes (#1396)

  • fix: use cpy 3.8 for running flake in CI

  • new: Ticket1392 internal attrs (#1394)

  • new: internal-only router attributes and hook for router to add custom information


  • new: massive expansion of XBR CLI and EIP712 helpers

  • new: more (exhaustive) serializer cross-tripping tests

  • fix: some code quality and bug-risk issues (#1379)

  • fix: removed externalPort assignment when not set (#1378)

  • fix: docs link in README (#1381)

  • fix: docs typo frameword -> framework (#1380)

  • fix: improve logging; track results on observable mixin

  • new: add environmental variable that strips xbr. (#1374)

  • fix: trollius is gone (#1373)

  • new: added ability to disable TLS channel binding (#1368)


  • new: XBR CLI (#1367)

  • fix: add missing XBR dependency py-multihash


  • new: XBR - package XBR v20.4.2 ABI files

  • new: XBR - adjust eip712 signature for channel close

  • new: XBR - adjustments after xbr refactoring (#1357)

  • new: XBR - add channel open/close eip712 types to AB (#1358)

  • new: WAMP-cryptosign - make channel_id_type optional in transport_channel_id()


  • new: XBR ABI files are downloaded from upstream and extracted into package (fixes #1349)

  • new: expose new XBR top-level contracts

  • fix: bump dependencies versions for attrs and identity (#1346)

  • fix: FrontendProxyProtocol object has no attribute ‘write’ (#1339)

  • fix: WAMP-cryptosign authid is not mandatory; reduce log noise (#1340)


  • fix: confusion between paying and payment channel (#1337)

  • new: forward explicitly set app level errors from (#1336)

  • fix: simple typo: hookinh -> hooking (#1333)

  • new: update for xbr v20.3.1

  • fix: for #1327 - cancel Auto Ping Timeout (#1328)

  • new: helper function to create a configured Web3 blockchain connection (#1329)


  • new: update XBR ABI files to XBR release v20.2.2


  • new: update XBR ABI files to XBR release v20.2.1

  • fix: add AuthAnonymous to __all__ (#1303)


  • fix: CI building (caching?) issue “corrupt ZIP file”

  • fix: update docker image build scripts and add ARM64/PyPy

  • fix: update XBR ABI files

  • fix: use txaio.time_ns and drop deprecated autobahn.util.time_ns

  • fix: update project README and docs for supported python versions (#1296)

  • fix: WebSocket protocol instances now raise autobahn.exception.Disconnected when sending on a closed connection (#1002)

  • fix: version conflict in xbr downstream application dependency (crossbarfx) (#1295)


  • fix: add python_requires>=3.5 to prevent installation on python 2 (#1293)


  • IMPORTANT: beginning release v20.1.1, Autobahn|Python only supports Python 3.5 or later.

  • fix: first part of cleaning up code, dropping Python 2 support (#1282).


  • IMPORTANT: release v19.11.2 will be the last release supporting Python 2. We will support Python 3.5 and later beginning with Autobahn v20.1.1.

  • fix: add docs for parameters to (#1276)

  • new: statistics tracking on WAMP serializers autobahn.wamp.serializer.Serializer

  • new: helper autobahn.util.time_ns


  • fix: argument type check for fragmentSize in sendMessage

  • new: start_loop option for WAMP components

  • new: ethereum bip39/32 helpers

  • new: enable XBR in Docker image build scripts


  • new: updated docker image scripts

  • new: add WAMP serializer in use to SessionDetails

  • fix: partial support for xb buyers/sellers in pypy

  • fix: remove dependency on “ethereum” package (part of pypy support)


  • new: XBR - update XBR for new contract ABIs

  • new: XBR - payment channel close

  • new: XBR - implement EIP712 signing of messages in endpoints


  • new: XBR - update XBR for new contract ABIs


  • new: XBR - update XBR for new contract ABIs


  • new: implement XBR off-chain delegate transaction signing and verification (#1202)

  • new: update XBR for new contract ABIs


  • fix: monkey patch re-add removed helper functions removed in eth-abi

  • new: simple blockchain (XBR) client

  • new: update XBR ABI files

  • new: XBR endpoint transaction signing

  • new: client side catching of WAMP URI errors in|register|publish|subscribe


  • fix: implement client side payload exceed max size; improve max size exceeded handling

  • fix: detect when our transport is “already” closed at connect time (#1215)

  • fix: XBR examples


  • fix: add forgotten cryptography dependency (#1205)


  • new: XBR client library integrated (#1201)

  • new: add entropy depletion unit tests

  • fix: make CLI tool python2 compatible (#1197)

  • fix: use cryptography pbkdf2 instead of custom (#1198)

  • fix: include tests for packaging (#1194)


  • fix: authextra merging (#1191)

  • fix: set default retry_delay_jitter (#1190)

  • new: add rawsocket + twisted example (#1189)

  • new: WebSocket testing support, via Agent-style interface (#1186)

  • new: decorator for on_connectfailure

  • fix: delayed call leakage (#1152)

  • new: CLI client (#1150)

  • fix: set up TLS over proxy properly (#1149)

  • new: expose ser modules (#1148)

  • fix: base64 encodings, add hex encoding (#1146)

  • new: onConnecting callback (with TransportDetails and ConnectingRequest). Note: if you’ve implemented a pure IWebSocketChannel without inheriting from Autobahn base classes, you’ll need to add an onConnecting() method that just does return None.


  • fix: RegisterOptions should have details|bool parameter (#1143)

  • new: WAMP callee disclosure

  • new: WAMP forward_for in more message types; expose forward_for in options/details types

  • new: expose underlying serializer modules on WAMP object serializers

  • fix: WAMP-cryptosign fix base64 encodings, add hex encoding (#1146)


  • fix: import guards for flatbuffers (missed in CI as we run with “all deps installed” there)


  • new: add experimental support for WAMP-FlatBuffers serializer: EVENT and PUBLISH messages for now only

  • new: add FlatBuffers schema for WAMP messages

  • fix: improve serializer package preference behavior depending on CPy vs PyPy

  • fix: relax protocol violations: ignore unknown INTERRUPT and GOODBYE already sent; reduce log noise

  • fix: skipping Yield message if transport gets closed before success callback is called (#1119)

  • fix: integer division in logging in py3 (#1120)

  • fix: Await tasks after they’ve been cancelled in autobahn.asycio.component.nicely_exit (#1116)


  • fix: set announced roles on appsession object (#1109)

  • new: lower log noise on ApplicationErrors (#1107)

  • new: allow explicit passing of tx endpoint and reactor (#1103)

  • new: add attribute to forward applicationrunner to applicationsession via componentconfig


  • new: adding marshal on SessionDetails


  • fix: return the wrapped function from component decorators (#1093)

  • new: add proxy= support for Component transports (#1091)

  • fix: Ticket1077 stop start (#1090)

  • fix: cleanup cancel handling (#1087)



  • new: forward_for WAMP message attribute (for Router-to-Router federation)

  • new: support RawSocket URLs (eg “rs://localhost:5000” or “rs://unix:/tmp/file.sock”)

  • new: support WAMP-over-Unix sockets for WAMP components (“new API”)

  • fix: use same WAMP serializer construction code for WAMP components (“new API”) and ApplicationSession/Runner

  • fix: memory leak with Twisted/WebSocket, dropConnection and producer


  • Don’t eat Component.stop() request when crossbar not connected (#1066)

  • handle async on_progress callbacks properly (#1061)

  • fix attribute error when ConnectionResetError does not contain “reason” attribute (#1059)

  • infer rawsocket host, port from URL (#1056)

  • fix error on connection lost if no reason (reason = None) (#1055)

  • fixed typo on class name (#1054)


  • fix: TLS error logging (#1052)


  • new: Interrupt has Options.reason to signal detailed origin of call cancelation (active cancel vs passive timeout)

  • fix: Cancel and Interrupt gets "killnowait" mode

  • new: Cancel and Interrupt no longer have ABORT/"abort"


  • new: WAMP call cancel support

  • fix: getting started documentation and general docs improvements

  • fix: WebSocket auto-reconnect on opening handshake failure

  • fix: more Python 3.7 compatibility and CI

  • fix: Docker image building using multi-arch, size optimizations and more

  • fix: asyncio failed to re-connect under some circumstances (#1040, #1041, #1010, #1030)


  • fix: Python 3.7 compatibility

  • fix: remove Python 2.6 support leftovers

  • new: getting started docker-based examples in matching with docs


  • new: Python 3.7 supported and integrated into CI

  • new: WAMP-SCRAM examples

  • fix: glitches in WAMP-SCRAM


  • fix: implement abort argument for asyncio in WebSocketAdapterProtocol._closeConnection (#1012)


  • fix: security (DoS amplification): a WebSocket server with permessage-deflate turned on could be induced to waste extra memory through a “zip-bomb” style attack. Setting a max-message-size will now stop deflating compressed data when the max is reached (instead of consuming all compressed data first). This could be used by a malicious client to make the server waste much more memory than the bandwidth the client uses.


  • fix: asyncio/rawsocket buffer processing

  • fix: example failures due to pypy longer startup time (#996)

  • fix: add on_welcome for AuthWampCra (#992)

  • fix: make run() of multiple components work on Windows (#986)

  • new: max_retries now defaults to -1 (“try forever”)


  • new: WAMP-SCRAM authentication

  • new: native vector extensions (NVX)

  • fix: improve choosereactor (#965, #963)

  • new: lots of new and improved documentation, component API and more

  • new: Docker image tooling now in this repo

  • fix: “fatal errors” in Component (#977)

  • fix: AIO/Component: create a new loop if already closed

  • fix: kwarg keys sometimes are bytes on Python2 (#980)

  • fix: various improvements to new component API


  • fix: endpoint configuration error messages (#942)

  • fix: various improvements to the new components API (including retries)

  • fix: pass unregisterProducer through to twisted to complement WebSocketAdapterProtocol.registerProducer (#875)


  • fix: proxy support (#918)

  • fix: ensure that a future is not done before rejecting it (#919)

  • fix: don’t try to reject cancelled futures within pending requests when closing the session


Published 2017-09-23

  • new: user configurable backoff policy

  • fix: close aio loop on exit

  • fix: some component API cleanups

  • fix: cryptosign on py2

  • new: allow setting correlation_is_last message marker in WAMP messages from user code


Published 2017-09-12

  • new: allow setting correlation URI and anchor flag in WAMP messages from user code

  • fix: WebSocket proxy connect on Python 3 (unicode vs bytes bug)


Published 2017-09-04

  • new: allow setting correlation ID in WAMP messages from user code

  • fix: distribute LICENSE file in all distribution formats (using setup.cfg metadata)


Published 2017-08-15

  • new: prefix= kwarg now available on ApplicationSession.register for runtime method names

  • new: @wamp.register(None) will use the function-name as the URI

  • new: correlation and uri attributes for WAMP message tracing


Published 2017-07-21

  • new: lots of improvements of components API, including asyncio support


Published 2017-06-24

  • new: force register option when joining realms

  • fix: TLS options in components API


Published 2017-06-07

  • new: allow components to pass WebSocket/RawSocket options

  • fix: register/subscribe decorators support different URI syntax from what session.register and session.subscribe support

  • new: allow for standard Crossbar a.c..d style pattern URIs to be used with Pattern

  • new: dynamic authorizer example

  • new: configurable log level in for asyncio

  • fix: forward reason of hard dropping WebSocket connection in wasNotCleanReason


Published 2017-05-01

  • new: switched to calendar-based release/version numbering

  • new: WAMP event retention example and docs

  • new: WAMP subscribe/register options on WAMP decorators

  • fix: require all TLS dependencies on extra_require_encryption setuptools

  • new: support for X-Forwarded-For HTTP header

  • fix: ABC interface definitions where missing “self”


Published 2017-04-14

  • new: payload codec API

  • fix: make WAMP-cryptobox use new payload codec API

  • fix: automatic binary conversation for JSON

  • new: improvements to experimental component API


Published 2017-03-28

  • fix: errback all user handlers for all WAMP requests still outstanding when session/transport is closed/lost

  • fix: allow WebSocketServerProtocol.onConnect to return a Future/Deferred

  • new: allow configuration of RawSocket serializer

  • new: test all examples on both WebSocket and RawSocket

  • fix: revert to default arg for Deny reason

  • new: WAMP-RawSocket and WebSocket default settings for asyncio

  • new: experimental component based API and new WAMP Session class


Published 2017-03-26

  • fix: big docs cleanup and polish

  • fix: docs for publisher black-/whitelisting based on authid/authrole

  • fix: serialization for publisher black-/whitelisting based on authid/authrole

  • new: allow to stop auto-reconnecting for Twisted ApplicationRunner

  • fix: allow empty realms (router decides) for asyncio ApplicationRunner


Published 2017-02-25

  • new: WAMP-cryptosign elliptic curve based authentication support for asyncio

  • new: CI testing on Twisted 17.1

  • new: controller/shared attributes on ComponentConfig


Published 2016-12-29

  • new: demo MQTT and WAMP clients interoperating via

  • new: WAMP message attributes for message resumption

  • new: improvements to experimental WAMP components API

  • fix: Python 3.4.4+ when using asyncio


Published 2016-11-30

  • new: WAMP PubSub event retention

  • new: WAMP PubSub last will / testament

  • new: WAMP PubSub acknowledged delivery

  • fix: WAMP Session lifecycle - properly handle asynchronous ApplicationSession.onConnect for asyncio


Published 2016-11-07

  • fix: inconsistency between PublishOptions and Publish message

  • new: improve logging with dropped connections (eg due to timeouts)

  • fix: various smaller asyncio fixes

  • new: rewrite all examples for new Python 3.5 async/await syntax

  • fix: copyrights transferred from Tavendo GmbH to Technologies GmbH


Published 2016-08-14

  • new: new autobahn.wamp.component API in experimental stage

  • new: Ed25519 OpenSSH and OpenBSD signify key support

  • fix: allow Py2 and async user code in onConnect callback of asyncio


Published 2016-07-19

  • new: WAMP AP option: register with maximum concurrency

  • new: automatic reconnect for WAMP clients ApplicationRunner on Twisted

  • new: RawSocket support in WAMP clients using ApplicationRunner on Twisted

  • new: Set WebSocket production settings on WAMP clients using ApplicationRunner on Twisted

  • fix: #715 Py2/Py3 issue with WebSocket traffic logging

  • new: allow WAMP factories to take classes OR instances of ApplicationSession

  • fix: make WebSocketResource working on Twisted 16.3

  • fix: remove some minified AutobahnJS from examples (makes distro packagers happy)

  • new: WAMP-RawSocket transport for asyncio

  • fix: #691 (security) If the allowedOrigins websocket option was set, the resulting matching was insufficient and would allow more origins than intended


Published 2016-05-26

  • fix: unpinned Twisted version again

  • fix: remove X-Powered-By header

  • fix: removed decrecated args to ApplicationRunner


Published 2016-05-01

  • new: use of batched/chunked timers to massively reduce CPU load with WebSocket auto-ping/pong

  • new: support new UBJSON WAMP serialization format

  • new: publish universal wheels

  • fix: replaced msgpack-python with u-msgpack-python

  • fix: some glitches with eligible / exlude when used with authid / authrole

  • fix: some logging glitches

  • fix: pin Twisted at 16.1.1 (for now)


Published 2016-04-09

  • moved helper funs for WebSocket URL handling to autobahn.websocket.util

  • fix: marshal WAMP options only when needed

  • fix: various smallish examples fixes


Published 2016-03-15

  • fix: better traceback logging (#613)

  • fix: unicode handling in debug messages (#606)

  • fix: return Deferred from run() (#603).

  • fix: more debug logging improvements

  • fix: more Pattern tests, fix edge case (#592).

  • fix: better logging from asyncio ApplicationRunner

  • new: disclose becomes a strict router-side feature (#586).

  • new: subscriber black/whitelisting using authid/authrole

  • new: asyncio websocket testee

  • new: refine Observable API (#593).


Published 2016-01-30

  • new: support CBOR serialization in WAMP

  • new: support WAMP payload transparency

  • new: beta version of WAMP-cryptosign authentication method

  • new: alpha version of WAMP-cryptobox end-to-end encryption

  • new: support user provided authextra data in WAMP authentication

  • new: support WAMP channel binding

  • new: WAMP authentication util functions for TOTP

  • fix: support skewed time leniency for TOTP

  • fix: use the new logging system in WAMP implementation

  • fix: some remaining Python 3 issues

  • fix: allow WAMP prefix matching register/subscribe with dot at end of URI


Published 2015-09-15

  • fixes regression #500 introduced with commit 9f68749


Published 2015-09-13

  • maintenance release with some issues fixed


Published 2015-09-06

  • fixes a regression in 0.10.6


Published 2015-09-05

  • maintenance release with nearly two dozen fixes

  • improved Python 3, error logging, WAMP connection mgmt, ..


Published 2015-08-06

  • maintenance release with lots of smaller bug fixes


Published 2015-05-08

  • maintenance release with some smaller bug fixes


Published 2015-04-14

  • new: using txaio package

  • new: revised WAMP-over-RawSocket specification implemented

  • fix: ignore unknown attributes in WAMP Options/Details


Published 2015-03-19

  • fix: Twisted 11 lacks IPv6 address class

  • new: various improvements handling errors from user code

  • new: add parameter to limit max connections on WebSocket servers

  • new: use new-style classes everywhere

  • new: moved package content to repo root

  • new: implement router revocation signaling for registrations/subscriptions

  • new: a whole bunch of more unit tests / coverage

  • new: provide reason/message when transport is lost

  • fix: send WAMP errors upon serialization errors


Published 2015-03-01

  • support for pattern-based subscriptions and registrations

  • support for shared registrations

  • fix: HEARTBEAT removed


Published 2015-02-19

  • Change license from Apache 2.0 to MIT

  • fix file line endings

  • add setuptools test target

  • fix Python 2.6


Published 2015-02-13

  • PEP8 code conformance

  • PyFlakes code quality

  • fix: warning for xrange on Python 3

  • fix: parsing of IPv6 host headers

  • add WAMP/Twisted service

  • fix: handle connect error in ApplicationRunner (on Twisted)


Published 2015-01-11

  • do not try to fire onClose on a session that never existed in the first place (fixes #316)

  • various doc fixes

  • fix URI decorator component handling (PR #309)

  • fix “standalone” argument to ApplicationRunner


Published 2014-12-15

  • refactor router code to

  • fix: catch error when Nagle cannot be set on stream transport (UDS)

  • fix: spelling in doc strings / docs

  • fix: WAMP JSON serialization of Unicode for ujson

  • fix: Twisted plugins issue


Published 2014-11-15

  • maintenance release with some smaller bug fixes

  • use ujson for WAMP when available

  • reduce WAMP ID space to [0, 2**31-1]

  • deactivate Twisted plugin cache recaching in


Published 2014-11-10

  • feature: WebSocket origin checking

  • feature: allow to disclose caller transport level info

  • fix: Python 2.6 compatibility

  • fix: handling of WebSocket close frame in a corner-case


Published 2014-10-17

  • fix: permessage-deflate “client_max_window_bits” parameter handling

  • fix: cancel opening handshake timeouts also for WebSocket clients

  • feature: add more control parameters to Flash policy file factory

  • feature: update AutobahnJS in examples

  • feature: allow to set WebSocket HTTP headers via dict

  • fix: ayncio imports for Python 3.4.2

  • feature: added reconnecting WebSocket client example


Published 2014-09-22

  • maintenance release with some smaller bug fixes


Published 2014-09-02

  • all WAMP v1 code removed

  • migrated various WAMP examples to WAMP v2

  • improved unicode/bytes handling

  • lots of code quality polishment

  • more unit test coverage


Published 2014-08-23

  • docs polishing

  • small fixes (unicode handling and such)


Published 2014-08-14

  • add automatic WebSocket ping/pong (#24)

  • WAMP-CRA client side (beta!)


Published 2014-08-05

  • fix Application class (#240)

  • support WSS for Application class

  • remove implicit dependency on bzip2 (#244)


Published 2014-07-23

  • WAMP application payload validation hooks

  • added Tox based testing for multiple platforms

  • code quality fixes



  • hooks and infrastructure for WAMP2 authorization

  • new examples: Twisted Klein, Crochet, wxPython

  • improved WAMP long-poll transport

  • improved stats tracker



  • WAMP-over-Long-poll (preliminary)

  • WAMP Authentication methods CR, Ticket, TOTP (preliminary)

  • WAMP App object (preliminary)

  • various fixes



  • maintenance release



  • initial support for WAMP on asyncio

  • new WAMP examples

  • WAMP ApplicationRunner



  • maintenance release



  • started reworking docs

  • allow factories to operate without WS URL

  • fix behavior on second protocol violation



  • support WAMP endpoint/handler decorators

  • new examples for endpoint/handler decorators

  • fix excludeMe pubsub option



  • initial support for WAMP v2 authentication

  • various fixes/improvements to WAMP v2 implementation

  • new example: WebSocket authentication with Mozilla Persona

  • polish up documentation



  • fix bug with closing router app sessions



  • compatibility with latest WAMP v2 spec (“RC-2, 2014/02/22”)

  • various smaller fixes



  • WAMP v2 basic router (broker + dealer) implementation

  • WAMP v2 example set

  • WAMP v2: decouple transports, sessions and routers

  • support explicit (binary) subprotocol name for wrapping WebSocket factory

  • fix dependency on MsgPack



  • new: complete WAMP v2 protocol implementation and API layer

  • new: basic WAMP v2 router implementation

  • existing WAMP v1 implementation renamed



  • fix WebSocket server HTML status page

  • fix close reason string handling

  • new “slowsquare” example

  • Python 2.6 fixes



  • support asyncio on Python 2 (via “Trollius” backport)



  • really fix setup/packaging



  • setup fixes

  • fixes for Python2.6



  • asyncio support

  • Python 3 support

  • support WebSocket (and WAMP) over Twisted stream endpoints

  • support Twisted stream endpoints over WebSocket

  • twistd stream endpoint forwarding plugin

  • various new examples

  • fix Flash policy factory



  • Twisted reactor is no longer imported on module level (but lazy)

  • optimize pure Python UTF8 validator (10-20% speedup on PyPy)

  • opening handshake traffic stats (per-open stats)

  • add multi-core echo example

  • fixes with examples of streaming mode

  • fix zero payload in streaming mode



  • support latest permessage-deflate draft

  • allow controlling memory level for zlib / permessage-deflate

  • updated reference, moved docs to “Read the Docs”

  • fixes #157 (a WAMP-CRA timing attack very, very unlikely to be exploitable, but anyway)



  • symmetric RPCs

  • WebSocket compression: client and server, permessage-deflate, permessage-bzip2 and permessage-snappy

  • onConnect is allowed to return Deferreds now

  • custom publication and subscription handler are allowed to return Deferreds now

  • support for explicit proxies

  • default protocol version now is RFC6455

  • option to use salted passwords for authentication with WAMP-CRA

  • automatically use ultrajson acceleration package for JSON processing when available

  • automatically use wsaccel acceleration package for WebSocket masking and UTF8 validation when available

  • allow setting and getting of custom HTTP headers in WebSocket opening handshake

  • various new code examples

  • various documentation fixes and improvements



  • base version when we started to maintain a changelog