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
- ts-proto: https://github.com/stephenh/ts-proto
- protobuf.js: https://github.com/protobufjs/protobuf.js
- protoscript: https://github.com/TateThurston/protoscript
- protoc-gen-ts: https://github.com/thesayyn/protoc-gen-ts
| Implementation | JavaScript and TypeScript |
Standard Plugin |
Supported Edition | Required tests | Recommended tests |
|---|---|---|---|---|---|
| Protobuf-ES | ✔️ | ✔️ | 2024 | (0 failures) |
(12 failures) |
| protobuf-ts | ✔️ | ✔️ | proto3 | (6 failures) |
(7 failures) |
| google-protobuf | ❌ | ✔️ | 2023 | (1169 failures) |
(389 failures) |
| ts-proto | ❌ | ✔️ | proto3 | (751 failures) |
(613 failures) |
| protobuf.js | ✔️ | ❌ | 2023 | (1847 failures) |
(579 failures) |
| protoscript | ✔️ | ✔️ | proto3 | (1151 failures) |
(541 failures) |
| protoc-gen-ts | ❌ | ✔️ | proto3 | (1690 failures) |
(475 failures) |
Implementations are tested with proto2, proto3, and the maximum Edition they advertise to support.
Note: None of the libraries tested implement the text format, so the results for those test runs are not shown.
To run the conformance tests, run npm test from the repo root.
Note that only Linux and OSX operating systems are supported.
Note
Beginning with the v32.0 release of Protobuf, this repository will no longer be publishing releases of the conformance runner. Users can instead install the conformance runner (and protoc if desired) via the protobuf-conformance package on npm.