Hi guys,
I'd like to use protobuf in one of my projects. This is a new project so I only need to use version 3 of the protobuf definition syntax. I've searched for nim protobuf libraries and I found several of them (in particular one from status, another from PMunch and another called nimpb). Does anybody have experience with them? Do you have any recommendations? I'd like it to be as efficient and fast as possible but also nice to use.
Thanks!
Angel
The main difference between PMunch/protobuf-nim and oskaritimperi/nimpb is that the latter uses hooks into the official protoc tool in order to generate the Nim code while mine does all the parsing in a Nim macro. This might not matter to you, after all it's one simply build step, but if you're doing rapid changes to the protobuf specification you're working on then it might become tedious/error prone. The Status library appears to use my parser and definitions, but generates code for the Status serialization library instead of just directly for streams like mine does. I haven't used their serialization library or the protobuf definition for it, so I can't really say much about it, but it's probably going to be pretty similar to mine in function.
I should note though that the parser and parser library I wrote for protobuf is pretty slow. I've been meaning to rewrite the parser with something like e.g. npeg to get a big speedup, but I haven't gotten around to it. Maybe now that I've torn a ligament in my ankle I will finally find the time for it, but I wouldn't hold my breath. If I did I assume that Status might copy the new parser over as well, as it would be much faster than the one I'm using now.
If I did I assume that Status might copy the new parser over as well, as it would be much faster than the one I'm using now.
If you ping us. Protobuf parsing doesn't even register in our profiling.