Notable changes
New Features
Protobuf editions are fully supported. You can now use edition = "2023"
in .proto files together with the proto-gen-go
. Edition2023 does not introduce any new features but can be used to replace syntax "proto2/3"
. Future editions might introduce new features. See https://protobuf.dev/editions/overview/ for more details on protobuf editions.
Documentation
Various smaller changes to improve existing documentation and to add more examples.
- CL/574455: proto: extend Marshal documentation, include an example
- CL/574635: proto: extend Unmarshal documentation, include an example
- CL/574836: protogen: update Options documentation.
- CL/573361: proto: add examples for Size, MarshalAppend (regarding allocations)
- CL/579895: encoding/{protojson,prototext}: strengthen wording on stability
Extensions
These are mostly performance improvements or preparations for performance improvements.
- CL/575035: internal/impl: ensure proto.HasExtension does not allocate
- CL/576315: [encoding/{protojson,prototext}: strengthen wording on stability](proto: CSE ProtoReflect() and TypeDescriptor() in proto.HasExtension
- CL/576316: internal/impl: pass ExtensionTypeDescriptor to extensionMap
- CL/579275: [proto] use the correct parent when resolving features for extensions
- CL/579595: proto: return an error instead of producing invalid wire format