Autobahn Python 18.4.1 / new WAMP-SCRAM authentication


Hi all,

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 - 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!


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

- 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 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;)




tiistai 10. huhtikuuta 2018 0.45.10 UTC+3 Tobias Oberstein kirjoitti:

  • WebSocket processing (XOR masking and UTF8 checking)

  • JSON, and general serialization and deserialization

I don’t know what can be done on PyPy, but looks like rapidjson can overall be a bit faster than ujson?