You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
ProtobufJS 8 introduces support for edition 2024. Currently, proto-loader does not support version 2024. I'm not sure why that is a breaking change, however
Describe the solution you'd like
Upgrade to protobufjs v8
Describe alternatives you've considered
Manually forcing v8 resolution in the upstream project. This is not a google solution as it introduces unsafe behavior
Hey, protobuf.js maintainer here. Fwiw, I'd expect the 7.x to 8.x upgrade to be relatively straightforward: These two are still pretty close architecturally, with the same module system, same Node.js support floor, and mostly the same API shape / behavior.
On why 8,.x is a breaking change: Edition 2024 support required restructuring feature and descriptor handling internally (e.g. protobufjs/protobuf.js#2060). Very little of that is visible on the surface proto-loader uses.
I'm also backporting fixes that I think are important for 7.x users in the meantime, but moving proto-loader to 8.x would simplify maintenance on that front over time.
Potentially relevant for grpc-node / proto-loader, apart from Edition 2024:
Extended descriptor support, including Editions metadata and keepCase on Root.fromDescriptor
Several conformance improvements, now passing the v35 conformance harness (see)
A new protoc-gen-pbjs plugin, if useful here
A new spec-compliant ProtoJSON extension, if useful elsewhere
For the keepCase option specifically, descriptor loading could pass its existing keepCase option through to Root.fromDescriptor(decodedDescriptorSet, { keepCase: options.keepCase }), which is now supported.
Happy to help. (I'm also open to more sustained collaboration around protobuf.js if that is useful.)
Checking in on this — is there a sense of when PR #3067 might land, or what's currently blocking review? We have a few projects carrying an override to work around the protobufjs v7 pin in proto-loader, and would like to drop it once the v8 bump merges. Happy to help test if that would move things along. Thanks for the work here.
Activity
dcodeIO commentedon Jun 12, 2026
Hey, protobuf.js maintainer here. Fwiw, I'd expect the 7.x to 8.x upgrade to be relatively straightforward: These two are still pretty close architecturally, with the same module system, same Node.js support floor, and mostly the same API shape / behavior.
On why 8,.x is a breaking change: Edition 2024 support required restructuring feature and descriptor handling internally (e.g. protobufjs/protobuf.js#2060). Very little of that is visible on the surface proto-loader uses.
I'm also backporting fixes that I think are important for 7.x users in the meantime, but moving proto-loader to 8.x would simplify maintenance on that front over time.
Potentially relevant for grpc-node / proto-loader, apart from Edition 2024:
keepCaseonRoot.fromDescriptorprotoc-gen-pbjsplugin, if useful hereFor the
keepCaseoption specifically, descriptor loading could pass its existingkeepCaseoption through toRoot.fromDescriptor(decodedDescriptorSet, { keepCase: options.keepCase }), which is now supported.Happy to help. (I'm also open to more sustained collaboration around protobuf.js if that is useful.)
proto-loader: pass keepCase to Root.fromDescriptor
AlbinoGeek commentedon Aug 7, 2026
Checking in on this — is there a sense of when PR #3067 might land, or what's currently blocking review? We have a few projects carrying an override to work around the protobufjs v7 pin in proto-loader, and would like to drop it once the v8 bump merges. Happy to help test if that would move things along. Thanks for the work here.
proto-loader: pass keepCase to Root.fromDescriptor
Houbein commentedon Nov 7, 2026
It has been a few months now, is there any news on when protobufjs V8 will be supported?