Support Protobuf 30+ (Protobuf C++ 6.x)
- Dominant language
- JavaScript
- Stars
- 9.3k
- Forks
- 802
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 5
Description
With Protobuf C++ 5.x (Protobuf 26 - 29) end of support on 31 Mar 2026[^1], it would be nice to update to Protobuf C++ 6.x (Protobuf 30 - 33).
protobuf-javascript already added support in https://github.com/protocolbuffers/protobuf-javascript/commit/eb785a9363664a402b6336dfe96aad27fb33ffa8 which can be used as reference.
The main incompatibility is from various APIs now returning an `absl::string_view` rather than `std::string`. For this particular change:
- The naive/quick fix is to just find-replace everything impacted and wrap with `std::string(...)`.
- A more performant option is to directly use the string_view and functions provided by Abseil - https://abseil.io/docs/cpp/guides/strings
[^1]: https://protobuf.dev/support/version-support/#cpp
Contributor guide
Research direction
Start by reviewing the protobuf-javascript commit linked in the issue and identify the grpc-web code affected by Protobuf C++ 30–33 API changes. Compare impacted uses of APIs returning absl::string_view and determine whether the project should wrap them in std::string or use Abseil string utilities. Done means grpc-web builds and supports Protobuf C++ 6.x without the reported incompatibilities.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, grpc, javascript
- Domain
- api, build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100