Decode/Encode Benchmark for Various OSS Go Protocol buffers (proto) Generators
The goal of this repository is to give more data on efficiency and usability of various Protocol Buffers generators and plugins that enhances the native google.golang.org/protobuf Go de/serialization implementation e.g.:
- gogoproto (for v1 proto API)
- vtprotobuf (for v2 API)
- csprotpo (for both v1 and v2, but we benchmark only v2 API).
All benchmark code is available for verifications and reproduction.
Benchmarks here use our new WIP Prometheus Remote Write 2.0 as a reference protobuf message. What's unique about it, is that we took a high priority on efficiency while developing it which resulted in custom string interning we wished was more popular in the community. 😉
NOTE: Performed on MacOS 14.1.1 M1 Pro 16GB RAM
NOTE2: v1 and v2 refer to Prometheus Remote Write version. You can focus on v2 to see differences between generators.
See early results here