Hi all,
I am happy to announce the release of Autobahn Python 18.4.1!
https://pypi.python.org/pypi/autobahn/18.4.1
https://autobahn.readthedocs.io/en/latest/changelog.html
This includes quite a bunch of cool things:
1) The worlds first implementation of WAMP-SCRAM =)
WAMP-SCRAM is a new authentication method for WAMP that has a number of
advantages compared to WAMP-CRA (within its class of auth methods ..
that is shared, long-term, user secret):
http://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#wamp-scram
The spec text is really great work, done by Emile, with lots of feedback
and input from other WAMP implementors:
https://github.com/ecorm
The actual lines of code (in Autobahn Python and Crossbar.io - a release
there is pending as well), created by Meejah:
https://github.com/meejah/
---
2) WAMP component API
The new component based, higher level WAMP API again has gotten more
production features and robustness, and - documentation! yay=)
Here:
https://autobahn.readthedocs.io/en/latest/wamp/programming.html#application-components
We'd love to hear your feedback on that!
---
3) Docker
The complete Docker image tooling for dozens of images now in this repo.
We want to expand on that, and make regular releases in 2 binary package
formats:
- Docker
- snaps
(in all architecture/run-time/framework flavors)
Bringing the existing tooling over here is a step in this direction.
---
4) Native Vector Extensions (NVX)
Longer ago, I extensively analyzed performance of Autobahn Python (and
Crossbar.io) using vmprof on PyPy, as well as Linux perf.
What I found where 2 places where lots of CPU cycles are spent:
- WebSocket processing (XOR masking and UTF8 checking)
- JSON, and general serialization and deserialization
I then sat down and wrote some vectorized SIMD code using C compiler
intrinsics, and made that available from Python via cffi.
What I found is that the speedups that can be achieved (vs pypy!) are
huge on specialized code. Anyways, I lost interest/time, but now I
decided to contribute that code as OSS to revive it.
The UTF8 validator is there .. just needs wiring up:
https://github.com/crossbario/autobahn-python/blob/master/autobahn/nvx/_utf8validator.c
The XOR masking: I have that somewhere else - just need to find it again.
---
Anways. Puh. That's it for now! Please help spread the word;)
Cheers,
/Tobias