rgb-cln/contrib/msggen
Christian Decker b13ab8de3a msggen: Use owned versions to convert from cln-rpc to cln-grpc
We needed to clone a lot since we were using a non-mutable borrow of
the cln-rpc version to then create the cln-grpc version. This alone
reduces the number of allocations of the `listpeers` test from 52
allocations to 38.
2022-09-25 15:13:12 +02:00
..
examples msggen: adding example and fixes typo 2022-05-07 11:11:51 +02:00
msggen msggen: Use owned versions to convert from cln-rpc to cln-grpc 2022-09-25 15:13:12 +02:00
README.md msggen: Parse JSON-RPC schemas and build the in-memory model 2022-02-11 16:02:25 +01:00
pyproject.toml msggen: Parse JSON-RPC schemas and build the in-memory model 2022-02-11 16:02:25 +01:00

README.md

MsgGen - Generating language bindings and docs from schemas and wire descriptions

MsgGen is a collection of tools that are used to parse schemas and (eventually) protocol wire CSVs into an intermediate representation in memory, and then generate language specific bindings and documentation from it.

The dependency graph looks like this:

digraph {
  "JSON-RPC Schemas" -> "msggen model";
  "msggen model" -> "grpc proto file";
  "msggen model" -> "Rust From<JsonRpc> Converters";
  "grpc proto file" -> "Rust grpc bindings"
  "Rust grpc bindings" -> "cln-grpc";
  "Rust From<JsonRpc> Converters" -> "cln-grpc";
  "msggen model" -> "Rust JSON-RPC structs";
  "Rust JSON-RPC structs" -> "cln-rpc";
}