I am happy to announce the release of Autobahn Python 18.4.1!
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):
The spec text is really great work, done by Emile, with lots of feedback
and input from other WAMP implementors:
The actual lines of code (in Autobahn Python and Crossbar.io - a release
there is pending as well), created by Meejah:
2) WAMP component API
The new component based, higher level WAMP API again has gotten more
production features and robustness, and - documentation! yay=)
We'd love to hear your feedback on that!
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
(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:
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;)