Releases: we-be/protobuf.v
Release list
v1.2.1
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-10 (UTC)
- cpu: AMD EPYC 7763 64-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 | 366 | 235.3 | 641 | 134.3 | 0.57 |
| 86 B | decode | 889 | 96.8 | 794 | 108.3 | 1.12 |
| 15.5 KB | encode | 89150 | 173.7 | 155263 | 99.7 | 0.57 |
| 15.5 KB | decode | 154606 | 100.1 | 196799 | 78.7 | 0.79 |
| 1.6 MB | encode | 13592042 | 116.2 | 16818352 | 93.9 | 0.81 |
| 1.6 MB | decode | 17753860 | 89.0 | 23071845 | 68.5 | 0.77 |
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.
v1.2.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-10 (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 | 307 | 279.8 | 539 | 159.6 | 0.57 |
| 86 B | decode | 832 | 103.3 | 631 | 136.3 | 1.32 |
| 15.5 KB | encode | 77936 | 198.7 | 137877 | 112.3 | 0.57 |
| 15.5 KB | decode | 159069 | 97.3 | 157222 | 98.5 | 1.01 |
| 1.6 MB | encode | 12624912 | 125.1 | 15352198 | 102.9 | 0.82 |
| 1.6 MB | decode | 19373694 | 81.5 | 19404686 | 81.4 | 1.00 |
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.
v1.1.1
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-10 (UTC)
- cpu: AMD EPYC 7763 64-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 | 312 | 275.4 | 636 | 135.3 | 0.49 |
| 86 B | decode | 825 | 104.3 | 816 | 105.4 | 1.01 |
| 15.5 KB | encode | 87992 | 176.0 | 153464 | 100.9 | 0.57 |
| 15.5 KB | decode | 156122 | 99.2 | 194936 | 79.4 | 0.80 |
| 1.6 MB | encode | 11373193 | 138.9 | 16165048 | 97.7 | 0.70 |
| 1.6 MB | decode | 18467082 | 85.5 | 21606801 | 73.1 | 0.85 |
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.
v1.1.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 | 301 | 286.1 | 542 | 158.8 | 0.56 |
| 86 B | decode | 836 | 102.9 | 637 | 135.1 | 1.31 |
| 15.5 KB | encode | 77254 | 200.4 | 137966 | 112.2 | 0.56 |
| 15.5 KB | decode | 165456 | 93.6 | 158812 | 97.5 | 1.04 |
| 1.6 MB | encode | 11205618 | 140.9 | 15071024 | 104.8 | 0.74 |
| 1.6 MB | decode | 19411502 | 81.4 | 19000302 | 83.1 | 1.02 |
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.
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.
v0.7.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 7763 64-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 | 315 | 273.0 | 655 | 131.3 | 0.48 |
| 86 B | decode | 824 | 104.3 | 781 | 110.1 | 1.06 |
| 15.5 KB | encode | 84263 | 183.7 | 153436 | 100.9 | 0.55 |
| 15.5 KB | decode | 147519 | 105.0 | 192688 | 80.4 | 0.77 |
| 1.6 MB | encode | 11002432 | 143.5 | 16210136 | 97.4 | 0.68 |
| 1.6 MB | decode | 18009350 | 87.7 | 21708710 | 72.8 | 0.83 |
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.
v0.6.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-08 (UTC)
- cpu: AMD EPYC 7763 64-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 | 315 | 272.9 | 638 | 134.9 | 0.49 |
| 86 B | decode | 991 | 86.8 | 774 | 111.2 | 1.28 |
| 15.5 KB | encode | 89699 | 172.6 | 157851 | 98.1 | 0.57 |
| 15.5 KB | decode | 186881 | 82.8 | 193022 | 80.2 | 0.97 |
| 1.6 MB | encode | 11456950 | 137.9 | 16391032 | 96.4 | 0.70 |
| 1.6 MB | decode | 22450339 | 70.3 | 21982056 | 71.8 | 1.02 |
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.
v0.5.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-08 (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 | 380 | 226.6 | 536 | 160.6 | 0.71 |
| 86 B | decode | 932 | 92.2 | 634 | 135.7 | 1.47 |
| 15.5 KB | encode | 75178 | 206.0 | 138100 | 112.1 | 0.54 |
| 15.5 KB | decode | 193565 | 80.0 | 159740 | 96.9 | 1.21 |
| 1.6 MB | encode | 11306905 | 139.7 | 15113834 | 104.5 | 0.75 |
| 1.6 MB | decode | 23294131 | 67.8 | 19278453 | 81.9 | 1.21 |
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.
v0.4.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-08 (UTC)
- cpu: AMD EPYC 7763 64-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 145109 bytes, 1000 people
- V decode of Go bytes: IDENTICAL 145109 bytes, 1000 people
Throughput
| payload | op | V ns/op | V MB/s | Go ns/op | Go MB/s | V/Go time |
|---|---|---|---|---|---|---|
| 86 B | encode | 309 | 278.2 | 644 | 133.5 | 0.48 |
| 86 B | decode | 922 | 93.2 | 759 | 113.3 | 1.21 |
| 14.2 KB | encode | 77864 | 182.9 | 138651 | 102.7 | 0.56 |
| 14.2 KB | decode | 172770 | 82.4 | 168136 | 84.7 | 1.03 |
| 1.5 MB | encode | 10426210 | 141.7 | 14455932 | 102.2 | 0.72 |
| 1.5 MB | decode | 19329849 | 76.4 | 18725273 | 78.9 | 1.03 |
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.
v0.3.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-06 (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 105459 bytes, 1000 people
- V decode of Go bytes: IDENTICAL 105459 bytes, 1000 people
Throughput
| payload | op | V ns/op | V MB/s | Go ns/op | Go MB/s | V/Go time |
|---|---|---|---|---|---|---|
| 77 B | encode | 209 | 367.7 | 200 | 385.0 | 1.05 |
| 77 B | decode | 651 | 118.3 | 306 | 251.9 | 2.13 |
| 10.4 KB | encode | 32377 | 322.2 | 23188 | 449.9 | 1.40 |
| 10.4 KB | decode | 103675 | 100.6 | 39818 | 262.0 | 2.60 |
| 1.1 MB | encode | 4364242 | 247.5 | 3313899 | 326.0 | 1.32 |
| 1.1 MB | decode | 11266960 | 95.9 | 5540088 | 195.0 | 2.03 |
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.