Suositut: Tiedot päivitetty 27. lokakuuta 2026

Kategoriat

Internet1 356
Viestintä321
Ääni ja video898
Grafiikka ja suunnittelu539
Toimisto ja tuottavuus1 124
Kehitystyökalut3 134
Tekoälytyökalut529
Tietoturva ja yksityisyys385
Järjestelmätyökalut3 114
Pelit523
Opiskelu ja tiede239
Verkko ja IT284

protobuf: vanhemmat versiot ja versiohistoria

Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.

protobuf-ohjelmasta on luettelossa 25 versiota, ensimmäinen 8. maaliskuuta 2024 ja uusin 36.2. Jokainen versio linkittää julkaisijan omiin asennustiedostoihin.

2024: 5 5 24 2025: 10 10 25 2026: 10 10 26

25 versiota 3 vuoden aikana · noin 9,9 vuodessa

VersioPäivämääräKokoTiedostot
36.2Uusin 17. syyskuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
# Announcements
• [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.

# Compiler
• Detects single-crate cross-file symbol collisions and conditionally emits crate-root re-exports. (https://github.com/protocolbuffers/protobuf/commit/30780158a07394a22eba3d57527ef32cac795e76)
• Prepend the file module name to Rust type paths to use canonical paths. (https://github.com/protocolbuffers/protobuf/commit/7390c85c5ce3707ab236aeb511eeeaba49c2f4fa)
• Expose generated per-file Rust proto modules as public. (https://github.com/protocolbuffers/protobuf/commit/7ed8a4bd72ba92b741fae08d6f05cbf987b7bcf1)

# Csharp
• Regenerate stale files. (https://github.com/protocolbuffers/protobuf/commit/57ef94fbb3e947c242a0a0a4831960f04b8bbf38)

# Rust
• Update README to note that the protobuf crate is superseded by google-protobuf. (https://github.com/protocolbuffers/protobuf/commit/8b6311f91c2fe6fb0ae4c661bdbef6e5b670c403)
• Add README.md to google-protobuf-codegen release crate (https://github.com/protocolbuffers/protobuf/commit/10b8b5e3222ffc8868c3338485dd1dfb007dab85)
• Detects single-crate cross-file symbol collisions and conditionally emits crate-root re-exports. (https://github.com/protocolbuffers/protobuf/commit/30780158a07394a22eba3d57527ef32cac795e76)
• Prepend the file module name to Rust type paths to use canonical paths. (https://github.com/protocolbuffers/protobuf/commit/7390c85c5ce3707ab236aeb511eeeaba49c2f4fa)
• Expose generated per-file Rust proto modules as public. (https://github.com/protocolbuffers/protobuf/commit/7ed8a4bd72ba92b741fae08d6f05cbf987b7bcf1)
• Remove iterator trait implementations for RepeatedMutIter (https://github.com/protocolbuffers/protobuf/commit/7aca0ec15c71505aced9eaf3ca3412d41aeb4d7e)
• Enable inherent next() and next_back() API for RepeatedMutIter besides trait implementation. (https://github.com/protocolbuffers/protobuf/commit/2198c6b4016cae3f76595ed3b50b23c3bd8c0add)
• *See also UPB changes below, which may affect Rust.*

# UPB (Python/PHP/Ruby C-Extension)
• Include .c files in the source_files glob in `upb/port/BUILD` (https://github.com/protocolbuffers/protobuf/commit/7ff0f8817b7a35185c94260ae7553b1df50ebbd1)
36.0 20. elokuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
# Announcements
• [Protobuf News](https://protobuf.dev/news/) may include additional announcements or pre-announcements for upcoming changes.
• [Migration Guide](https://protobuf.dev/support/migration/) may include additional guidance for breaking changes.

# Bazel
• Add Bazel9 test (https://github.com/protocolbuffers/protobuf/commit/90ad7e978849e11406eeb47baf228b099c5da9d0)
• Bazel 9 tests for csharp, hpb, objc, php, python, rust and upb (https://github.com/protocolbuffers/protobuf/commit/f9e028f29fa83d0fcfb01c19ce0a4635e9beff5c)

# Compiler
• Make default_symbol_visibility STRICT in edition 2026 (https://github.com/protocolbuffers/protobuf/commit/fcd68c563cf2be486622a118caaf8c5f3858f744)
• Add deprecation warnings for (py|cc|java)_generic_service. (https://github.com/protocolbuffers/protobuf/commit/517be42cfe43c9e2c69f5ee40e437a9d8cbd3f99)
• Disallow reserving field number INT_MAX. (https://github.com/protocolbuffers/protobuf/commit/933c522f9e9a09d30f370dc885640af248e52469)
• Add bazel targets for standalone plugin binaries (#23919) (https://github.com/protocolbuffers/protobuf/commit/81880fad1673797b6326a91582b2bf77069d505d)
• Feat:`--<lang>_prefix` cli option (#24824) (https://github.com/protocolbuffers/protobuf/commit/92dd27ccf0c5c674b48de48310e0ebf45d0d5b88)
• Enforce proto limits in the descriptor by default for EDITION_2026. (https://github.com/protocolbuffers/protobuf/commit/d8520d93af2aadf99afcb5e17bfb99c14ad57364)
• Fix:Apply path traversal guard to WriteAllToZip() matching WriteAllToDisk() (#27171) (https://github.com/protocolbuffers/protobuf/commit/28bef9809e4d1f5f3b6da2a4a26a3bd5b488136b)
• Add an `enforce_proto_limits` feature which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/5ddd5244f7a04539e59f97fbc0c0df02334d0b12)

# C++
• Disable option sub-location mapping in open-source builds. (https://github.com/protocolbuffers/protobuf/commit/1d8a656f5273a3b41afa609cf0f08b65491dbd48)
• Add `json_options.proto` and `json_enumvalue_options.proto` and/or gencode derived from them to release artifacts (https://github.com/protocolbuffers/protobuf/commit/15e93345f8b821ad74334fd503318f8860b774bb)
• Add deprecation warning for `Reflection::GetEnum()` and `Reflection::GetRepeatedEnum()`. (https://github.com/protocolbuffers/protobuf/commit/0bca2886d724d6782186ae970a0214b6fcc3e4e0)
• Migrate top-level protobuf unittest protos from Edition 2024 to Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/271ca53b50bebdb4b910563928b1f7f3d5c61990)
• Util:validate Duration/Timestamp in TimeUtil::FromString against spec limits (#27443) (https://github.com/protocolbuffers/protobuf/commit/e33749537254d42895ef084e482faaba230fddc2)
• Make default_symbol_visibility STRICT in edition 2026 (https://github.com/protocolbuffers/protobuf/commit/fcd68c563cf2be486622a118caaf8c5f3858f744)
• Use the direct map reflection API when converting message to JSON, if the repeated field reflection is not valid. (https://github.com/protocolbuffers/protobuf/commit/e75aac33c3615d22d0cba61e8f9d92939a39a73f)
• Add bazel targets for standalone plugin binaries (#23919) (https://github.com/protocolbuffers/protobuf/commit/81880fad1673797b6326a91582b2bf77069d505d)
• Fix(cpp):stop TextFormat iteration if output stream fails (#26237) (https://github.com/protocolbuffers/protobuf/commit/2718dd5f3dda891f7e0224e5f50aa946219499ff)
• Enforce proto limits in the descriptor by default for EDITION_2026. (https://github.com/protocolbuffers/protobuf/commit/d8520d93af2aadf99afcb5e17bfb99c14ad57364)
• Add an `enforce_proto_limits` feature which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/5ddd5244f7a04539e59f97fbc0c0df02334d0b12)
• Workaround for attribute handling bug in gcc < 13 (https://github.com/protocolbuffers/protobuf/commit/ba10a4e179fa6cd0cbe4597f6fd19c1b3442c5bd)
• Fix confusing error message for map value type name conflicts (https://github.com/protocolbuffers/protobuf/commit/7
35.1 11. kesäkuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Bazel 9 tests for csharp, hpb, objc, php, python, rust and upb (#27598) (4469e38)
- Break protobuf dependency on Bazel's proto fragment. Only respect the Starlark versions of --proto_toolchain_for*. This is a breaking change from 35.0, but matches the behavior in 34.x. (1f99c52)
C++
- Add cord setters to repeated string fields. (6efa174)
UPB (Python/PHP/Ruby C-Extension)
- Avoid UB in upb by switching to the XCT section, which will run our constructors before the compiler-generated initializers. (c35b977)
35.0 19. toukokuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Bazel 9 Support: Upgrade tests to Bazel 9 (3ee8d8a)
- Moved protocopt flag out of the cc dir, since it is not a c++-specific flag. (325d8dc)
- Add support for bazel 9.x (#26201) (f08d703)
- Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True. (f9f32d2)
- Dropped support for Bazel 7. (1816758)
Compiler
- Implement the Edition 2026 naming style enforcement feature. This will help prevent field name collisions. (ae0d964)
- Add enum to enforce_naming_style feature to avoid field naming collisions which will be implemented in Edition 2026. (e4911a1)
- Fail writing files in protoc CLI if any file output path is relative. (3bf2b07)
- Mangle types named XyzView if there is any direct sibling named Xyz (63d6ef0)
- Improve the namespacing selected by rustc used for gencode types in errors. (ce2eb73)
- Fully qualify scalar types in Kotlin/Native proto generator. (adc8d22)
- Change _opt() accessors to return an std::Option instead of protobuf::Optional (6ced612)
- Make Message's trait bounds much better for generic use (be1292f)
- Support more chars in type URLs in the C++ text-format parser. (3a87c6c)
- Validate Feature Support on Custom Options (34c1110)
- Trait clarity effort: introduce Singular trait, for types which are allowed as simple fields (cdbfaf1)
- Trait clarity improvement on Map traits (a8daa95)
C++
- Workaround for attribute handling bug in gcc < 13 (78dc67e)
- Implement the Edition 2026 naming style enforcement feature. This will help prevent field name collisions. (ae0d964)
- Add enum to enforce_naming_style feature to avoid field naming collisions which will be implemented in Edition 2026. (e4911a1)
- Enhance ParseInfoTree to provide location of names and values. (1cb4fdb)
- Add integer overflow check to RepeatedPtrField::MergeFrom. (cb5fe97)
- Adding sanity check for ListFields reflection call (555360e)
- Introduce Arena::UniquePtr and Arena::Ptr as smart pointers to better manage (bb00218)
- Bug fix for edition 2024 visibility checking. Visibility checking was not properly applied to service method input and output types. This is now applied properly and will error if method input/output types do not have visibility to those messages. (5a56dee)
- Fixed data race in Python Free Threading by removing unnecessary SetHasBitForRepeated() call. (8c1a9a4)
- Add support for bazel 9.x (#26201) (f08d703)
- Add proto2::sort/stable_sort utilities that behave as the standard ones but are optimized for Protobuf containers. (252281f)
- Add proto2::erase/erase_if utilities that behave as the standard ones but are optimized for Protobuf containers. (dc9fb35)
- Extend Abseil flag support for enums to include std::vector. (bd42ac6)
- Dropped support for Bazel 7. (1816758)
- Add native Abseil flag support to protobuf message types. (ec42e19)
- Support more chars in type URLs in the C++ text-format parser. (3a87c6c)
- Stripping empty options (d5d6d4c)
- Creating generic MaybeAddError helper function (4bcf773)
- Validate Feature Support on Custom Options (34c1110)
- Add bounds checks to UnsafeArenaExtractSubrange, ReleaseLast and SwapElements. (d124c2d)
- Fix UTF-8 Validation of string extensions in C++ (0936f33)
- Remove first implementation of protobuf out of bounds enforcement. (507f86b)
- Add native Abseil flag support to protobuf enums. (a203388)
- Improve EINTR handling for close in zero_copy_stream_impl.h (a904af9)
- Add cc_proto_library for MessageSet in //src/google/protobuf/bridge (6d23e8e)
Java
- Add BytecodeClassName functions, matching helpers in the java GeneratorNames utility. (514aceb)
- Add enum to enforce_naming_style feature to avoid field naming collisions which will be implemented in Edition 2026. (e4911a1)
- Avoid toBigIntegerExact in JsonFormat to avoid degenerate parse behavior in the face of large exponents. (57093a8)
- Dropped support for Bazel 7. (1816758)
- Add native Abseil flag sup
34.1 19. maaliskuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Moved protocopt flag out of the cc dir, since it is not a c++-specific flag. (3db9fd1)
- Add support for bazel 9.x (#26201) (763c5da)
C++
- Updated CMake dependencies. (5583485)
- Add cc_proto_library for MessageSet in //src/google/protobuf/bridge (523a6a4)
- Add support for bazel 9.x (#26201) (763c5da)
Java
- Avoid toBigIntegerExact in JsonFormat to avoid degenerate parse behavior in the face of large exponents. (ab3d7f0)
Python
- Add support for bazel 9.x (#26201) (763c5da)
Other
- Fixed release_prep.sh script mkdir command to follow INTEGRITY_FILE location. (e700d7d)
- Second try at fixing the release_prep.sh file path! (#26097) (f5ccaf3)
34.0 25. helmikuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- This version includes potential breaking changes with major version bump to: Objective-C, Python, PHP, C++. Bazel
- [Objective-C] Remove -[GPBFieldDescriptor optional] (3414dc1)
- [Objective-C] Fix nullability annotations on some GPB*Dictionary types. (ea67d6d)
- [Objective-C] Remove generate_minimal_imports generation option warning (45b1297)
- [Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (5b116fe)
- [Python] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (c301c2c)
- [Python] Remove deprecated FieldDescriptor.label (0a8ff55)
- [Python] Remove float_format/double_format from python proto text_format (e4854a1)
- [Python] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (b76faa9)
- [Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (00aaca1)
- [Python] Remove float_precision from python proto json_format (f027f1f)
- [PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (4208121)
- [PHP] Remove deprecated PHP APIs (9c45014)
- [PHP] Add PHP typehints for setters and remove redundant GPBUtil checks (aee03b7)
- [PHP] support default values for editions/proto2 (b01099d)
- [C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (c301c2c)
- [C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (7a75898)
- [C++] Add [[nodiscard]] to many APIs. (a70115f)
- [C++] Make generator headers private (3a2af35)
- [C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (68346ec)
- [C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (b76faa9)
- [C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() && !is_repeated()) instead (9dbc5d4)
- [C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (837a2cd)
- [C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (b115358)
- [C++] Make the arena-enabled constructors of RepeatedField, RepeatedPtrField, and Map private. (ef890c3)
- [C++] All entity names have length limit (2afb0dc)
- [Other] Remove deprecated flag for enabling MSVC support (97c979b)
- [Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (0a5c2f6)
- [Bazel] Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True. (84a30b5)
- [Bazel] Only respect the Starlark versions of --proto_toolchain_for*(b5685c4)
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Only respect the Starlark versions of --proto_toolchain_for*. This is a breaking change. (#26090) (#26091) (b5685c4)
- Breaking change: Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True. (84a30b5)
- Dropped support for Bazel 7. (304c9ba)
- Don't check for native protobuf flags if the proto fragment doesn't exist. (#25803) (5975f13)
- Fix the prefer_prebuilt_protoc alias to use the correct originally announced location (732ed49)
- Actually fix breaking change related to upb_proto_reflection_library (86d434b)
- Fix breaking change related to upb_c_proto_library and upb_proto_reflection_library (b0150c0)
- Add an alias to undo accidental unannounced breaking change (e71d379)
- Moved prebuilt-related Bazel files to standard locations. (cfe8991)
- Refactored and rearranged Bazel rules. (d7dd1e1)
- Removed the third_party/upb/upb/bazel directory. (7efbfe1)
- Introduce Starlark versions of Protobuf flags. (d1f4b2f)
- Fix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (#25168) (8c857c3)
- Breaking change: Remove dep
33.5 29. tammikuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Python
- Fix Any recursion depth bypass in Python json_format.ParseDict (#25239) (#25586) (c4eda3e)
Other
- Update release_bazel_module.yaml (#25509) (c3ca6a3)
- Make BCR PRs non-draft by default. (9db25c1)
- Fix(publish-to-bcr): disable attestations (#24018) (c07bc2f)
33.4 12. tammikuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Other
- Refactor(bazel): publish a separate .tar.gz (#24065) (47b3385)
- Bazel: Remove hardcoded dependency on //:protoc from language runtimes (#19679) (453cfb2)
33.3 9. tammikuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Fix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (#25168) (7b30360)
- Locked down visibility of the new flags and config settings. (04ca1b7)
- Feat(bazel): wire up prebuilt protoc toolchain (#24115) (aeaede0)
Compiler
- Create editions test_utils to fix existing brittle tests in command_line_interface_unittest and code_generator_unittest. (cb0a8c5)
- Add edition unstable for development work. (44e090c)
- Add conformance test for edition unstable (d167dd0)
C++
- Add edition unstable for development work. (44e090c)
- Add conformance test for edition unstable (d167dd0)
Java
- Add conformance test for edition unstable (d167dd0)
- Correctly apply JSON recursion limit when parsing an Any-of-Any. (94c7f73)
Csharp
- Add conformance test for edition unstable (d167dd0)
Python
- Add conformance test for edition unstable (d167dd0)
- Automated rollback of commit 38ca2d3. (184b5e8)
UPB (Python/PHP/Ruby C-Extension)
- Add conformance test for edition unstable (d167dd0)
- Fix unused parameter warnings. (cd0cb21)
Other
- Don't ignore platform requirements (aeedbc6)
- Update GitHub Actions to use macOS-14 (again). (f7b18f8)
- Delete redundant ARM tests (d4e7a81)
- Protobuf: update php from macos-13 to macos-15-intel (9027d6b)
- Update GitHub Actions to use macOS-14. (f0907f3)
What's Changed
- 25.x 202311012212 by @haberman in #14596
- merge 25.x to main by @anandolee in #14617
- Update utf8_range subtree by @acozzette in #14679
- Adds "Prototiller Requirements for Editions" to the GitHub code repository. by @copybara-service[bot] in #14857
- Support the profile proto analyzer to analyze some statistics of a profile. by @copybara-service[bot] in #14858
- upb: lock down upb_MiniTableExtension by @copybara-service[bot] in #14836
- Cleanup "mergeable" types. by @copybara-service[bot] in #14868
- Fix typo in comment. by @copybara-service[bot] in #14962
- upb: clean up and lock down the internal oneof accessors by @copybara-service[bot] in #14940
- upb: inline upb_Message_New() by @copybara-service[bot] in #14943
- Automated rollback of commit 3c75c33. by @copybara-service[bot] in #14976
- Internal change by @copybara-service[bot] in #14973
- upb: implement upb_MiniTable_MapKey() and upb_MiniTable_MapValue() by @copybara-service[bot] in #14942
- Remove unused headers. by @copybara-service[bot] in #14966
- Fix DurationToMilliseconds mult overflow by @copybara-service[bot] in #14954
- Cleanup mutable thunk usage in singular_message by @copybara-service[bot] in #14922
- Add benchmark for 32 bit repeated fields. by @copybara-service[bot] in #14991
- Move repeated tests into their own file by @copybara-service[bot] in #14974
- Internal changes by @copybara-service[bot] in #14955
- Implement Maps for strings by @copybara-service[bot] in #14869
- Extend the weak descriptor message feature to include extensions. by @copybara-service[bot] in #14999
- Add coverage for default_string and default_bytes in test_default_accessors by @copybara-service[bot] in #14975
- Fix some of the reflection based algorithms to handle Map entries properly. by @copybara-service[bot] in #14934
- Remove dead code. by @copybara-service[bot] in #14998
- Breaking change: Remove deprecated syntax APIs by @copybara-service[bot] in #14993
- Add a trivial 2023 edition test case for Rust. by @copybara-service[bot] in #15003
- Remove descriptor_legacy usage from C++ runtime by @copybara-service[bot] in #14969
- Remove descriptor_legacy usage from compiler code by @copybara-service[bot] in #14970
- Improve codegen for address pinning. by @copybara-service[bot] in #14986
- upb: delete upb::SymbolTable typedef by @copybara-service[bot] in #14984
- [ObjC] Improve handing of the WKT ObjC Category additions. by @copybara-service[bot] in #14987
- Add some missing includes by @copybara-service[bot] in #15018
- Make LazyField::ByteSizeLong consistent with eager m
33.2 5. joulukuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Add EDITION_UNSTABLE for new edition development (9247790)
- Fix a bug with custom features outside of the pb package. (483173d)
- Reserving a declaration for the Impress proto plugin. (8a0b438)
C++
- Remove unnecessary uses of future changes to descriptor.proto (50c9e62)
- Fix a bug with custom features outside of the pb package. (483173d)
Java
- Fix a bug with custom features outside of the pb package. (483173d)
Csharp
- Add EDITION_UNSTABLE for new edition development (9247790)
- Use generic Marshal.SizeOf when possible (#21964) (#24673) (9f263cd)
- Regenerate stale files (058bffa)
PHP
- Add EDITION_UNSTABLE for new edition development (9247790)
PHP C-Extension
- Regenerate staleness tests (e9f62c6)
- Add EDITION_UNSTABLE for new edition development (9247790)
- Regenerate stale files (058bffa)
- See also UPB changes below, which may affect PHP C-Extension.
Ruby
Ruby C-Extension
- Regenerate staleness tests (e9f62c6)
- Regenerate stale files (058bffa)
- See also UPB changes below, which may affect Ruby C-Extension.
UPB (Python/PHP/Ruby C-Extension)
- Regenerate staleness tests (e9f62c6)
- Add BTI to branch targets when branch protection is enabled. This resolves (72a48f9)
- Extract arm64 asm check (13ee2ce)
33.1 12. marraskuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Fix Any hasbit consistency issue in OSS. (#24400) (59db671)
Java
- Expose NestedInFileClass naming helpers for Java immutable. (#24401) (5737cd2)
33.0 15. lokakuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Feat: update bazel central registry publish workflow (#23465) (#23913) (d5217fd)
- Add target_compatible_with parameter to proto_toolchain in Bazel rules (#22429) (30d2332)
- Bazel: add missing rules_cc loads (#23584) (d98e2ef)
Compiler
- Disable symbol visibility enforcement by default in C++ runtime (ae308fc)
- Ship all option dependencies to plugins along with regular ones. (abeb130)
C++
- Avoid calling deprecated arena-enabled constructors in arena.h. (813a7ef)
- Add a macro to make RepeatedField(Arena*) constructor private in a future release. (768db14)
- Add a macro to make Map(Arena*) constructor private in a future release. (543a17f)
- Optimize ReadPackedVarint (3d94d83)
- Add a macro to make RepeatedPtrField(Arena*) constructor private in a future release (6422b9d)
- Add IsEmpty() function to reflection. (b64e490)
- Refactor RuntimeAssertInBounds to remove repeated logic and make Get/Mutable easier to read. (2f270c4)
- Disable symbol visibility enforcement by default in C++ runtime (ae308fc)
- Fix a bug in the main C++ JSON parser/serializer camelcasing of certain non-style-compliant names incorrectly, in a way that would prevent it from interoperating with any other implementation on those fields. (e25e267)
- Fail early for messages with more than 65k fields. (90824aa)
- Add option to C++ JSON Parser/Serializer to allow customers to affirmatively disable legacy bug-compatibilty behaviors. (6ea1640)
- Fix mishandling on JSON serialization of Timestamp with invalid negative and too-large nanos value. (a959f27)
- Preserve features in type resolver (c7030f4)
- Add a DCHECK that ArenaStringPtr::Set(char*, Arena*) is not called with (95b1763)
Java
- Switch the pre22 warning to use CopyOnWriteArraySet. (#23969) (e55224c)
- Expose helpers for checking if messages and enums are nested. (8de4002)
- Fix a bug calculating the file name in the absense of directories. (c4ff7a6)
- Clarify the public APIs of GeneratorNames helpers. (537ac35)
- Expose helpers to predict generated class names in java. (eba6df2)
- Deprecate ClassName methods in favor of new QualifiedClassName ones. (ca4fb2f)
- Restore the 3-argument internalBuildGeneratedFileFrom. (4376591)
- Fix large java enums not being honored on lite runtime. (a995803)
- Slightly relax Java Poison Pill on prerelease versions (-rc1, -dev, etc). (7b0bee3)
- Avoid boxing/unboxing varint, fixed32, and fixed64 fields in UnknownFieldSet.Field (810272f)
- Readd new*List() methods on GeneratedMessageV3. (badaf41)
- Add Values.of(Map<String, Value> values). (c518f25)
- Fix handling of optional dependencies in java generator. (8d51e34)
- Restore ABI compatibility for extension methods which was previously (knowingly) broken with 4.x: 94a2a44 (ea33ae8)
- Restore Protobuf Java extension modifiers in gencode that were previously removed in 7bff169 (f2257f5)
- Ship all option dependencies to plugins along with regular ones. (abeb130)
- Optimize redaction state calculation (e05db5c)
- Add isPlaceholder() accessors to file, message, and enum descriptors (f978ec2)
- Improve Java gencode static initialization to avoid unnecessary temporaries again (745e15b)
- Improve Java gencode static initialization to avoid unnecessary temporaries (b68b673)
- Remove protobuf-util usages of guava except annotations. (5768acd)
- Restore compatibility of runtime with pre-3.22.x gencode impacted by CVE-2022-3171 (7c51e5b)
- Expose an iterator for GeneratedMessage.ExtendableMessage.extensions (b25d39e)
Rust
- Change Rust prelude to bring in traits as _ (c3f7e8d)
- Make message Muts Send (8bff944)
- See also UPB changes below, which may affect Rust.
Python
- Publish s390x wheels for Python/upb. (56b2b89)
- Fix a crash that happens during shutdown due to looking up modules in the cache (d57d270)
- Add construction support for repeated Timestamp/Duration/Struct/ListValue. (5f6c013)
- Fix handling of repe
32.1 11. syyskuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Ship all option dependencies to plugins along with regular ones. (34d6c85)
- Unify plugin and built-in generators to use request/response interface (b98f6ee)
- Disable symbol visibility enforcement by default in C++ runtime (aad0daa)
C++
- Disable symbol visibility enforcement by default in C++ runtime (aad0daa)
Java
- Fix handling of optional dependencies in java generator. (892e0d5)
- Restore Protobuf Java extension modifiers in gencode that were previously removed in 7bff169 (4a18be6)
- Restore ABI compatibility for extension methods which was previously (knowingly) broken with 4.x: 94a2a44 (501f4a5)
- Cherrypick test improvements (d365736)
- Fix handling of optional dependencies in java generator. (9325480)
- Ship all option dependencies to plugins along with regular ones. (34d6c85)
- Unify plugin and built-in generators to use request/response interface (b98f6ee)
Csharp
- Regenerate stale files (299774c)
PHP
- Fix: remove provide from composer.json (bc5f303)
32.0 14. elokuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Migrates some Java test protos using java_features.proto to edition 2024 (6f4a990)
- Add generated message reflection unittest for import option and option_deps test proto in edition 2024. (c51df73)
- Replace the usage of cc_info.debug_context with _debug_context (776c5f2)
- Generate .pyi files in py_proto_library (#10366) (#21567) (e3e56c7)
- Introduce denylisted_protos as a preferred replacement for blacklisted_protos attribute. (795ab9d)
- Use native.proto_library for Bazel 7 and explicitly error for Bazel 6 which is incompatible and out of support. (da0077e)
- Require ProtoInfo provider instead of proto_library rule for bazel cc_proto_library deps. (639f1c9)
Compiler
- Strip extensions from option imports that are known in CollectExtensions due to polluted pool from protoc parse when used with protoc full + java built in generator. (ef3f9ca)
- Deprecate google.protobuf.Method.syntax and google.protobuf.Method.edition (9ec241e)
- Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
- Ban import weak and weak field option in edition 2024 in protoc (parser and c++ runtime). (a2a0511)
C++
- Strip extensions from option imports that are known in CollectExtensions due to polluted pool from protoc parse when used with protoc full + java built in generator. (ef3f9ca)
- Manually migrate top-level protobuf unittest protos from edition 2023 to edition 2024. (7359f75)
- Add generated message reflection unittest for import option and option_deps test proto in edition 2024. (c51df73)
- Remove the flag requirement for Bazel+MSVC users. (c6ba697)
- Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
- Cast GetCachedTID() to unsigned to prevent left-shifting a negative number. (3e935cf)
- Update comment at the top of message.h and message_lite.h to document that it should only be extended by gencode and not user code. (6a6ba52)
- Treat warnings encountered in chromium builds as errors. (21c3c53)
- Ban import weak and weak field option in edition 2024 in protoc (parser and c++ runtime). (a2a0511)
Java
- Strip extensions from option imports that are known in CollectExtensions due to polluted pool from protoc parse when used with protoc full + java built in generator. (ef3f9ca)
- Remove CollectExtensions check banning unknown custom options since unknown custom options are now expected when using import option and option_deps which exclude the options from the "builder" pool (aka "import" pool). (694eedd)
- Manually migrate top-level protobuf unittest protos from edition 2023 to edition 2024. (7359f75)
- Migrates some Java test protos using java_features.proto to edition 2024 (6f4a990)
- Restore compatibility of runtime with pre-3.22.x gencode impacted by CVE-2022-3171 (adf556f)
- Update our compiled_edition_default's maximum_edition to 2024 (#22870) (6216ae4)
- Restore the long-deprecated static functions on TextFormat. (5777d3b)
- Add Kotlin class name helpers to names.h (527b2ab)
- Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
- Update Java gencode base class documentation to clarify that it is not supported to extend them. (c3177fb)
- Add a FieldMaskUtil#trim overload that accepts TrimOptions and allows retaining unset primitive field state. (84c5b63)
Csharp
- Update staleness (0014173)
- Manually migrate top-level protobuf unittest protos from edition 2023 to edition 2024. (7359f75)
- Update our compiled_edition_default's maximum_edition to 2024 (#22870) (6216ae4)
- Enable edition 2024 support in protoc and language generators for cpp, hpb, java, kotlin, objectivec, php, python, pyi, rust. (26843b3)
- Include also ARM build of protoc in nuget package (#21568) (c2b4040)
31.1 28. toukokuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Support allowing late injection of language feature set defaults from FeatureSet extensions while getting feature set extension values. (3419598)
C++
- Support allowing late injection of language feature set defaults from FeatureSet extensions while getting feature set extension values. (3419598)
Java
- Add missing copts attribute (#21982) (bec5b5a)
- Support allowing late injection of language feature set defaults from FeatureSet extensions while getting feature set extension values. (3419598)
Python
- Support allowing late injection of language feature set defaults from FeatureSet extensions while getting feature set extension values. (3419598)
- Python pyi print "import datetime" for Duration/Timestamp field (#21885) (0fe099a)
- Add recursion depth limits to pure python (a3921fb)
Other
- Fix cmake staleness test (96a9ef6)
31.0 14. toukokuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Bazel
- Loosen py_proto_library check to be on the import path instead of full directory (i.e. excluding external/module-name prefix). (a4be867)
Compiler
- Add support for import option for protoc.(9901db6)
- Add notices.h with information about our dependencies' licenses and add --notices flag to protoc to print the contents of that file. (7a26486)
- Move upb minitable code generator into protoc (dce6b0f)
- Upgrade abseil-cpp to 20250127 and use @com_google_absl -> @abseil-cpp and com_google_googletest -> @googletest canonical BCR names. (ba6b54d)
C++
- Remove fast-path check for non-clang compilers in MessageCreator. (aa5410d)
- Add missing include. (d390631)
- Add weak attribute to GetClassData to speed up clang builds. (d896480)
- Add nontemporal software prefetcher to repeated ptr field dtor to improve performance. (73f3469)
- Warn on unused RepeatedPtrField. (683e9d2)
- Add notices.h with information about our dependencies' licenses and add --notices flag to protoc to print the contents of that file. (7a26486)
- Fix a bug in handling of implicit-presence string_view fields. (bd70a7c)
- Control bounds checks via BUILD flags. (d21e8ef)
- Upgrade abseil-cpp to 20250127 and use @com_google_absl -> @abseil-cpp and com_google_googletest -> @googletest canonical BCR names. (ba6b54d)
- Create hardened versions of Get and Mutable for repeated_field. (ffade4a)
Java
- Add weak attribute to GetClassData to speed up clang builds. (d896480)
- Use ProtobufToStringOutput to control the output format of AbstractMessage.Builder.toString. (f5cb162)
- Implement Protobuf Java Immutable API nest_in_file_class feature for Edition 2024. (0416c3e)
- Introduce a Generated annotation to eventually replace javax.annotation.Generated (31e57fc)
- Add volatile to featuresResolved (9e03ca5)
- Fix Java concurrency issue in feature resolution for old <=3.25.x gencode using lazy feature resolution. (fafb0fd)
- Remove Java runtime classes from kotlin release. (079be27)
- Split maven dependencies into dev vs local (#20549) (e045fc6)
- Improve error messaging when detecting and erroring out on integer overflow of byte count limit variables. (097fdb8)
Kotlin
- Remove Java runtime classes from kotlin release. (079be27)
Csharp
- Remove "experimental API" warnings from members in the .NET protobuf runtime. (afea52f)
- Improve performace of repeated packed fixedSize fields (#19667) (85507b9)
Objective-C
- [ObjC] Deprecate GPBFieldDescriptor.isOptional. (86ab252)
- [ObjC] Raise the library version and enable new generated code. (a639cf8)
Rust
- Cherry-pick Rust fix to 31.x (#21617) (01b42bb)
- Add upb_Map_GetMutable API to upb (dd5bf5e)
- See also UPB changes below, which may affect Rust.
Python
- Update GetCurrentTime to use datetime.datetime.now (01b154c)
- Make Py JSON float_precision apply to both float and double fields. (5b54ee3)
- -Add '+' and '-' annotations for Timestamp and Duration in Python (fff783e)
- Bug fix for FieldMask.MergeFrom() with unset fields. (1c87ac3)
- Make python text_format able to skip unknown fields for repeated messages (dcafca2)
- Fix segment fault for UPB Pyhon 'in' method of empty repeated extensions (da04261)
- Fix upb to escape DefinitelyNeedsEscape (like " and ') for bytes field (b234305)
- Check with fallback descriptorDB for FindExtensionByNumber()/FindAllExtensions in UPB python pool. (9fd28d9)
- Add clear() method to repeated fields in Python. (0324f39)
- Register Scalar/MessageMapContainerTypes as virtual subclasses of (9a0b591)
- Fix python codegen crash when C++ features are used. (308aaf4)
- Add more detail to the comment for GetMessageClassesForFiles (9befb58)
- Add constructing unpack routine to Python Protobuf Any API. (fb78c09)
- Implement typing for proto Timestamp/Duration assignments. (0e3326b)
PHP
- Deprecate Descriptor Label. As an alternative, add helper methods for checking whether a field is required
30.2 26. maaliskuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Restore generator headers in cmake install until the next breaking C++ release (#20749) (b69f653)
C++
- Remove dllexport attribute on variable definition. (#20833) (7831669)
- Restore generator headers in cmake install until the next breaking C++ release (#20749) (b69f653)
- Change how we decide which empty string implementation to use. (#20708) (221b2a0)
Java
- Remove dllexport attribute on variable definition. (#20833) (7831669)
- Add protobuf_maven artifacts to protobuf_maven_dev as well so they can still be referenced correctly using the dev namespace for dev-only targets. (#20771) (09b5078)
- Add volatile to featuresResolved (#20766) (b7f06f1)
- Restore generator headers in cmake install until the next breaking C++ release (#20749) (b69f653)
- Restore custom protobuf maven namespaces to avoid polluting main maven namespace for non-dev dependencies as well. (#20739) (f4b0a79)
- Fix Java concurrency issue in feature resolution for old <=3.25.x gencode using lazy feature resolution. (#20751) (2dc9f35)
- Fix lite classes in the protobuf-java Maven release to be JDK8 compatible. (#20843) (7a4c63b)
Kotlin
- Restore custom protobuf maven namespaces to avoid polluting main maven namespace for non-dev dependencies as well. (#20739) (f4b0a79)
Csharp
- Restore generator headers in cmake install until the next breaking C++ release (#20749) (b69f653)
Objective-C
- Restore generator headers in cmake install until the next breaking C++ release (#20749) (b69f653)
Python
- Restore generator headers in cmake install until the next breaking C++ release (#20749) (b69f653)
Ruby
- Restore generator headers in cmake install until the next breaking C++ release (#20749) (b69f653)
Other
- Restore JDK8 compatibility in Bazel for libraries with dependencies from Maven (e.g. //java/util) (#20832) (da9cadc)
29.6 4. helmikuuta 2026 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Fix warning about implicit capture of 'this' with '=' (#22083) (afede60)
Python
- Fix Any recursion depth bypass in Python json_format.ParseDict (#25239) (#25587) (5ebddcb)
- Extend gencode compatibility support back to 3.20.0 (#22423) (a532f52)
- [numpy] Fix breakage in users of Python protobufs under NumPy 2.3rc1. (#22171) (c6c8a17)
PHP
- Bump version dependencies on phpunit/phpunit to ">=10.5.62 <11.0.0" (#25589) (f340323)
- Protobuf: update php from macos-13 to macos-15-intel (#24776) (1ca37de)
- Upgrade setup-php to speed up PHP tests (#24405) (bc64ed9)
Python
- Don't run python tests on windows, which aren't supported anyway (#25598) (cbfc703)
Other
- Don't ignore platform requirements (87743f6)
- Update github major version tags to be formatted v..<MI… (#22358) (09082d4)
- Drop windows-2019 runners from CI (#22186) (39cd25b)
29.3 8. tammikuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
C++
- Fix cmake installation location of java and go features (#19773) (1dc5842)
Other
- Add .bazeliskrc for protobuf repo to tell bazelisk to use 7.1.2 by default. (#19884) (9a5d2c3)
- Update artifact actions to v4 (#19703) (8e7e6b0)
29.1 12. joulukuuta 2024 — 64-bittinen ZIP32-bittinen ZIP
28.3 20. marraskuuta 2024 — 64-bittinen ZIP32-bittinen ZIP
27.1 10. kesäkuuta 2024 — 64-bittinen ZIP32-bittinen ZIP
25.7 23. huhtikuuta 2025 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Compiler
- Make rules_ruby a dev-only dependency. (#20575) (2dac90d)
C++
- Make rules_ruby a dev-only dependency. (#20575) (2dac90d)
PHP
- Fix(php): do not throw deprecated warning on field getters for default values (#21033) (a4dc75f)
Ruby
- Make rules_ruby a dev-only dependency. (#20575) (2dac90d)
Other
- Update test_cpp.yml (96fca23)
- Backport bumps to aarch64 runners (d4a4426)
25.4 24. heinäkuuta 2024 — 64-bittinen ZIP32-bittinen ZIP
Muutosloki
Announcements
- Protobuf News may include additional announcements or pre-announcements for upcoming changes.
Java
- Check that size is non-negative when reading string or bytes in StreamDecoder. (165cf12)
- Add Automatic-Module-Name (#14562) (552ad31)
PHP
PHP C-Extension
- Regen stale files (367c7be)
Ruby
Ruby C-Extension
- Regen stale files (367c7be)
Other
- Drop 2.7 in linux test (#17524) (314fc8b)
- Fix targets (eb1fdd3)
- Update bazel to 6.3.2 (a5dadc3)
- Backport staleness changes to 25.x (c3b9b4f)
- Downgrade CMake to 3.29 to workaround Abseil issue. (bdb1f75)
- Upgrade macos-11 tests to macos-12 (27041af)
- Use explicit names of our large runners (c73d6c8)
- Upgrade our C++ release tests to large runners. (8ec9a43)
- Downgrade our sanitized builds to ubuntu-20. (892a2ce)
- Disable TSAN tests due to what appears to be a sanitizer bug (aa32865)
- Disable MacOS C++ Cmake test for now. (6b1c253)
- Update setup-php to 2.30.0 and re-enable macOS PHP 8.2 tests. (220a74b)
- Add back error message unconditionally (f60c624)
- Pin bazel 6 for 25.x (3b72455)
- Actually fail if staleness fail (8688825)
25.3 8. maaliskuuta 2024 — 64-bittinen ZIP32-bittinen ZIP