A repository which runs the protocol buffers conformance test suite against various implementations.
The current implementations being tested are:
- Protobuf-ES: https://github.com/bufbuild/protobuf-es
- protobuf-ts: https://github.com/timostamm/protobuf-ts
- google-protobuf: https://github.com/protocolbuffers/protobuf-javascript
- protobuf.js: https://github.com/protobufjs/protobuf.js/
- protoc-gen-ts: https://github.com/thesayyn/protoc-gen-ts
- ts-proto: https://github.com/stephenh/ts-proto
Implementation | JavaScript | TypeScript | Standard Plugin |
Required tests | Recommended tests |
---|---|---|---|---|---|
Protobuf-ES | ✔️ | ✔️ | ✔️ | (0 failures) |
(1 failures) |
protobuf-ts | ✔️ | ✔️ | ✔️ | (6 failures) |
(5 failures) |
google-protobuf | ✔️ | ❌ | ✔️ | (387 failures) |
(216 failures) |
protobuf.js | ✔️ | ✔️ | ❌ | (928 failures) |
(471 failures) |
protoc-gen-ts | ❌ | ✔️ | ✔️ | (1085 failures) |
(369 failures) |
ts-proto | ❌ | ✔️ | ✔️ | (850 failures) |
(528 failures) |
Note: None of the libraries tested implement the text format so the results for those test runs are not shown.
First, verify that Bazel is installed. Using Bazelisk is recommended.
To run the conformance tests, run make
from the repo root.
If you are on Apple M1 and see the error symbol not found in flat namespace (_CFRelease)
when building protoc
, you may need to install XCode from the Apple App Store.