The RAET (Reliable Asynchronous Event Transport) protocol seems like a good fit for reactive streams. Its currently only implemented in Python but the protocol is simple enough that porting to JavaScript and other languages should be relatively straightforward. It is Asynchronous Message Based. Uses LibSodium (NACL) for end to end encryption and signing. Message bodies can either be raw binary (whatever) or serialized with json or msg pack. The protocol is extensible and modular.
The RAET (Reliable Asynchronous Event Transport) protocol seems like a good fit for reactive streams. Its currently only implemented in Python but the protocol is simple enough that porting to JavaScript and other languages should be relatively straightforward. It is Asynchronous Message Based. Uses LibSodium (NACL) for end to end encryption and signing. Message bodies can either be raw binary (whatever) or serialized with json or msg pack. The protocol is extensible and modular.
See
https://github.com/RaetProtocol/raet
https://github.com/RaetProtocol/raet/blob/master/docs/topics/tutorial.rst
It is used in production by SaltStack and Plenum