We've open sourced the JSON-RPC library we developed at Lightform. It provides a core library on top of which you can build different transport layers. It also supports swappable json libraries so users don't need to pull in a new json dependency. It can support binary json-like formats such as universal binary json or cbor as well.
The library supports both the client and server; so naturally method, parameter, and response definitions are re-used across both the client and server side.
Currently streams (websockets, tcp, etc), HTTP, and MQTT are supported.
Questions, comments, contributions welcome!
Nathan
Lightform Cloud Team