Closed larkwiot closed 2 years ago
We did look at Cap'n'proto but as I recall we went with Protobuf because Protobuf is more widely supported (e.g., obvious libraries exist in every language for which we have an API: CPP, Python, Common-Lisp, Java). It is possible that Cap'n'proto is as widely supported, but we didn't realize at the time.
If there are concrete benefits to Cap'n'proto (e.g., one major limitation we've felt with Protobuf is the inability to decode only part of a GTIRB file -- sometimes we only want say one AuxData table but we're stuck processing an entire large GTIRB file) and the support is as broad as Protobuf then I think we're open to considering making this switch, although it would be a huge disruptive switch.
We did look at Cap'n'proto but as I recall we went with Protobuf because Protobuf is more widely supported (e.g., obvious libraries exist in every language for which we have an API: CPP, Python, Common-Lisp, Java). It is possible that Cap'n'proto is as widely supported, but we didn't realize at the time.
If there are concrete benefits to Cap'n'proto (e.g., one major limitation we've felt with Protobuf is the inability to decode only part of a GTIRB file -- sometimes we only want say one AuxData table but we're stuck processing an entire large GTIRB file) and the support is as broad as Protobuf then I think we're open to considering making this switch, although it would be a huge disruptive switch.
This is really helpful, thanks!
Hello!
Just wondering if Cap'n'proto was considered, and if so why protobuf was chosen over it? Assuming there is no design limitation for it, I would like to add support for it to GTIRB. Is there anywhere in particular you all would recommend I start in the codebase to accomplish that?