The difference between ppx_deriving_protobuf and ocaml-protoc is that the former generates a protobuf schema from an OCaml type while the later generates the OCaml type from a protobuf schema. They are both using the same runtime library for the binary encoding.

Although I have written ocaml-protoc as a personal project, it has been used successfully in a professional context to interface with apache mesos.


On Sat, Feb 10, 2018 at 8:10 PM Kenneth Adam Miller <kennethadammiller@gmail.com> wrote:
The space complexity is ridiculous (at least X^2, possibly 2^n), it isn't as convenient as any of the others in allowing you to derive your own specs, it's horribly written code that uses ref and doesn't conform to OCaml conventions, it caused a lot of crashing on our end, only works for a particular compile target until I went to update it, the Makefile is an awful unmaintainable and unreadable mess, the language it defines is unnecessary and it's hard to get anything to change.

We (me and some team mates) had this forced on us for the features we required, which was to be able to get data in and out of ocaml to other languages, and wanted to use it for a large project. It ended up causing a lot of unnecessary and unwanted slow down in development, both for our cases and for CMU's BAP. They had the same problems, and everyone that has touched it had to do unwanted work trying to get it to reliably do what it advertises. 

On Sat, Feb 10, 2018 at 7:43 PM, Louis Roché <mail@louisroche.net> wrote:
Can you give more details please ?


> On 11 Feb 2018, at 04:56, Kenneth Adam Miller <kennethadammiller@gmail.com> wrote:
>
> **Dont use piqi!** It's really terrible code.