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
Optimize GeneratedMessage.ExtendableBuilder to avoid temporary allocations when merging empty extendable messages. (a37dbd6)
Stop using sun.misc.Unsafe in isValidUtf8 paths. (421d745)
Use String#encodedLength on JDK versions that support it (efca121)
Add an enforce_proto_limits feature which will be implemented in Edition 2026. (5ddd524)
Java: limit numeric string length before BigDecimal parsing (#26908) (25e7005)
Validate java package and class against injection risks. (f8514d8)
Csharp
Cache custom JSON enum names in JsonParser using Lazy. (156d42d)
Csharp: add support for custom json strings for enum values (f11aac4)
Validate language-specific namespace options in code generators (#28667) (34e959b)
Make default_symbol_visibility STRICT in edition 2026 (fcd68c5)
Advertise that C# supports Edition 2026, and move C# Nullable Reference Type support into that edition. (a1f718c)
First implementation of C# nullable reference types enablement using the current (unreleased) edition. (7a732d1)
Add bazel targets for standalone plugin binaries (#23919) (81880fa)
Csharp: propagate recursion depth into JsonReplayTokenizer to honor Any nesting limit (#26835) (cee45bf)
Fix csharp string interpolation in Timestamp.ToDateTime() exception message (#26341) (a298282)
Objective-C
[ObjC] Carry recursion depth across MessageSet item parsing (#27571) (f89baed)
Add bazel targets for standalone plugin binaries (#23919) (81880fa)
[ObjC] Add DEBUG-only validations to extension values in GPBMessage, along with tests. (290a537)
Rust
Re-export to google-protobuf crate in 0.x.y for 36.0 and above (96e772f)
Remove -release suffix from Rust Crates.io release if minor version >= 36 (e7b3391)
Add bazel targets for standalone plugin binaries (#23919) (81880fa)
RustProto: Add the ability to iterate over the muts of a repeated message-typed field. (70590a5)
See also UPB changes below, which may affect Rust.
Python
Add json_options.proto and json_enumvalue_options.proto and/or gencode derived from them to release artifacts (15e9334)
Emit future warning when mutating GetOptions() in OSS (2255541)
Emit deprecation warning when comparing descriptor containers with unrecognized types in OSS (5865e6b)
Migrate top-level protobuf unittest protos from Edition 2024 to Edition 2026. (271ca53)
Configure extra compile args in setup.py (#28264) (3aa022a)
Python: fix heap-use-after-free in MapIterator after map.clear() (#27257) (9e9dbae)
Add PyDescriptorPool_FromSharedPool(std::shared_ptr) API (abdf212)
Fix memory leak in PyUpb_Descriptor_GetExtensionRanges (3d31b0f)
Warn on out-of-range pop index in upb repeated fields. (a70d121)
Support assigning repeated scalar fields using Python Buffer API. (ea40f1d)
Fix Pure Python map<string, ...> key handling for bytes lookups. (156a0b8)
Change Python DescriptorDatabase FindFileContainingSymbol() to accept leading "." to match DescriptorPool and other languages (e86e536)
Faster Python cpp protos assignment to bytes/string fields. (593ab17)
Serialize length-prefixed protos once (#27252) (e090f8a)
[py/upb] Make GetOptions() return immutable options for scalar type. UPB will raise a TypeError when options returned GetOptions() by is mutated. (403d429)
Add bazel targets for standalone plugin binaries (#23919) (81880fa)
Add mutex protection to DescriptorPool caches. (cecbbf4)
Refactor container comparison function in py/C++ and py/upb to return enum instead of integer. (c857f49)
Py JSON: Fix issue with depth enforcement on Struct/Value WKT paths. (cfcc433)
Fix RepeatedContainer_pop to raise IndexError for out-of-bounds indices. (78a09ad)
Add bazel targets for standalone plugin binaries (#23919) (81880fa)
UPB (Python/PHP/Ruby C-Extension)
Json/upb: Implement json EnumValueName for upb (0e8519e)
Avoid UB in upb by switching to the XCT section, which will run our constructors before the compiler-generated initializers. (58e5ac8)
[py/upb] Make GetOptions() return immutable options for scalar type. UPB will raise a TypeError when options returned GetOptions() by is mutated. (403d429)
Clarify FieldMask JSON warnings/errors in the situation of fields which aren't round-trip representable in JSON format. (0488596)