I'm sorry I cannot help with the code, but I just wanted to say that I'm very happy to hear about this effort, **thank you very much!**
Some semi-related food for thought: * Last time I tried, I had some problems with [the libprotobuf-c wrapper](https://github.com/huodon/protobuf) and some other binary serialization methods on Nim. The best alternative for Nim that I've found so far is [msgpack4nim](https://github.com/jangko/msgpack4nim), and I think some Nim devs have been going with that just because that's what worked. It would be useful to compare / contrast / benchmark the two formats - I'm sure there are ideal use cases for both. * I think that a Nim protobuf implementation should be considered for [stdlib](https://nim-lang.org/docs/lib.html). I hope you'll also use the MIT license or [equivalent](http://copyfree.org/standard/licenses), so there would be no legal barriers to its inclusion. * I also wonder if the ideal solution is for Nim to encourage the use of [multiformats](https://github.com/multiformats), like replacing the default standard [marshal](https://nim-lang.org/docs/marshal.html) module with a [multicodec](https://github.com/multiformats/multicodec) that lets you choose between json, cbor, protobuf, msgpack, [etc](https://github.com/multiformats/multicodec/blob/master/table.csv). I'd like to learn what other people think about that idea.
