Sans-IO Implementation of WAMP #535
Replies: 2 comments 2 replies
|
This is absolutly sick 🤩 nice job so far! Feel free to take as much from my dart code as you want to implement features to your dart project. |
awesome! fwiw, Autobahn was designed similarly, that is sans-io + interfaces. besides serializer and authenticator, it also factors transports: does xonnio also support different WAMP transports, if not, is it planned?
great approach! just one Q: curious, why protobuf when there is flatbuffers binding for WAMP already? eg https://github.com/crossbario/autobahn-python/blob/master/autobahn/wamp/flatbuffers/pubsub.fbs
fantastic!
this is awesome!! thank you so much for contributing to the WAMP ecosystem=) |
Uh oh!
There was an error while loading. Please reload this page.
I have been leading an open-source effort that is inspired by https://sans-io.readthedocs.io/ and mainly based on principles followed by https://github.com/python-hyper/wsproto but for the WAMP protocol implementations. I call it the Xconn project.
At its core is a bunch of sans-io implementations of the WAMP protocol in different programming languages (and more on the way)
https://github.com/xconnio/wampproto-python
https://github.com/xconnio/wampproto-dart
https://github.com/xconnio/wampproto-ts
https://github.com/xconnio/wampproto-go
https://github.com/xconnio/wampproto-ruby
These implementations are intended to be reusable for any future WAMP client implementations. They are pluggable i.e. writing a new authenticator OR a new serializer is super simple as everything is an interface. The proof of pluggability is that I am able to write an experimental protobuf based WAMP message serializer without making changes in the library implementations https://github.com/xconnio/wampproto-protobuf
Then there are a bunch of WAMP client libraries that use the above sans-io implementations to create clients and routers
https://github.com/xconnio/xconn-dart
https://github.com/xconnio/xconn-python
https://github.com/xconnio/xconn-go
https://github.com/xconnio/xconn-ruby
The project contains tools as well
https://github.com/xconnio/wampproto-cli => is a cli tool to do interoperability testing of different sans-io implementations
https://github.com/xconnio/wick-ui => A desktop, mobile and webapp written in Flutter for WAMP API testing (Postman for WAMP).
This has all been developed in the open and is MIT licensed.
We are lagging in documentation and that is going to be a priority for us going forward.
DISCLAIMER: This stuff is alpha quality and is not ready for production yet. I am personally funding the development.
All reactions