I have created a JSON-RPC implementation as a Sans I/O layer and a Trio wrapper.
The documentation is still a bit rough and it currently supports only WebSocket as transport, but it is functional and has high test coverage. I’ve already created a small web app based on it.