v1.0.0
vpbgen
Prebuilt vpbgen binaries attached (linux-amd64, macos-arm64, macos-amd64).
The library itself installs from source: v install --git https://github.com/we-be/protobuf.v
protobuf.v benchmark report
- date: 2026-08-09 (UTC)
- cpu: AMD EPYC 9V74 80-Core Processor
- v: V 0.5.2 , harness compiled with -prod
- go: go1.26.5, google.golang.org/protobuf v1.36.11
Wire compatibility
- V and Go encode 1000 identical messages to byte-identical output
- Go decode of V bytes: IDENTICAL 154752 bytes, 1000 people
- V decode of Go bytes: IDENTICAL 154752 bytes, 1000 people
Throughput
| payload | op | V ns/op | V MB/s | Go ns/op | Go MB/s | V/Go time |
|---|---|---|---|---|---|---|
| 86 B | encode | 297 | 289.2 | 536 | 160.4 | 0.55 |
| 86 B | decode | 808 | 106.5 | 634 | 135.7 | 1.27 |
| 15.5 KB | encode | 76467 | 202.5 | 138315 | 111.9 | 0.55 |
| 15.5 KB | decode | 156484 | 98.9 | 161028 | 96.2 | 0.97 |
| 1.6 MB | encode | 11192728 | 141.1 | 15046987 | 105.0 | 0.74 |
| 1.6 MB | decode | 18428839 | 85.7 | 18973378 | 83.2 | 0.97 |
V/Go time: 1.00 = parity, below 1 = V faster. Schema: bench.proto (people with
nested phone messages, packed varint tags). Both harnesses build identical data
(splitmix64, seed 42) and time identically (iterations scaled to ~1s per cell).
Benchmarks ran on a shared CI runner — good for V-vs-Go ratios, noisy for absolute numbers.