Never miss a release that matters

AI-powered summaries of every GitHub release.

AI Summaries

Changelogs condensed into clear, actionable insights.

Always Free

Track up to 5 packages at no cost, forever.

Weekly Digest

A curated summary of every release, delivered weekly.

Get Started Free
protocolbuffers/protobufv35.x
1 release

TL;DR

Protocol Buffers v35 introduces a new naming style enforcement feature (Edition 2026) to prevent field name collisions, improving proto definition reliability.

Breaking

  • Bazel 7 Support Dropped: Builds will no longer work with Bazel version 7.

New

  • Naming Style Enforcement: The new Edition 2026 feature enforces consistent field naming, reducing potential conflicts.
  • Improved Kotlin/Native Support: Scalar types are now fully qualified in generated Kotlin/Native code.

Fixes Worth Knowing

  • Relative Path Issue: The protoc CLI now fails when attempting to write files using relative output paths.
  • C++ Reflection: Improved error reporting and sanity checks within C++ reflection APIs.
  • Type URL Support: The C++ text-format parser now supports a wider range of characters in type URLs.

Before You Upgrade

  • If using Bazel, upgrade to version 8 or 9.
  • Review your proto definitions for potential naming conflicts in anticipation of Edition 2026 enforcement.
May 19, 2026
protocolbuffers/protobufv35.xprerelease
2 releases

TL;DR

Protocol Buffers now fully supports Bazel 9 (a build system), improving integration for users employing that tool.

Fixes Worth Knowing

A bug in older GCC compilers (software development tool) was resolved, preventing issues when handling certain data structures. A potential overflow issue in the UPB extension registry was also fixed, improving stability.

May 7, 2026
Apr 20, 2026
protocolbuffers/protobufv25.x
10 releases

TL;DR

This release improves compatibility with recent versions of NumPy (scientific computing library) and PHP, and extends code generation support to older protobuf versions.

Fixes Worth Knowing

  • Fixed a parsing issue in the Java implementation when dealing with very large numbers in JSON format.
  • Python protobufs are now compatible with NumPy 2.3rc1.
  • PHP tests are now running faster due to an upgrade to the setup-php tool.
  • Code generation is now compatible with protobuf versions as old as 3.20.0.
Mar 25, 2026
May 27, 2025
Apr 23, 2025
Jan 24, 2025
Sep 18, 2024
Jul 24, 2024
Feb 15, 2024
Jan 9, 2024
Nov 15, 2023
Nov 1, 2023
protocolbuffers/protobufv34.x
2 releases

TL;DR

Protocol Buffers now supports Bazel 9, improving compatibility for users employing this build system (build tool).

Fixes Worth Knowing

The Java JsonFormat parser now handles large exponents correctly, preventing parsing errors with very large numbers.

Mar 19, 2026
Feb 25, 2026
protocolbuffers/protobufv33.x
7 releases

TL;DR

Protocol Buffers now prevents excessively deep recursion in the PHP implementation, improving stability when processing complex messages.

Fixes Worth Knowing

  • PHP: Prevents crashes due to unbounded recursion when parsing deeply nested messages.
  • PHP: Corrects an issue where excessively large numbers in JSON parsing could cause errors (JSON format - data interchange standard).
  • PHP: Addresses PHP 8.5 compatibility issues.
  • PHP: Validates input length to prevent errors.
Mar 18, 2026
Jan 29, 2026
Jan 12, 2026
Jan 9, 2026
Dec 5, 2025
Nov 12, 2025
Oct 15, 2025
protocolbuffers/protobufv34.xprerelease
2 releases

TL;DR

Protocol Buffers now uses the toolchain protoc by default, improving consistency and reliability when building with Bazel (build system).

Breaking

  • Bazel Build System: Several fixes and changes were made to Bazel rules related to upb_c_proto_library and upb_proto_reflection_library, potentially impacting custom Bazel configurations.
  • Bazel Directory: The third_party/upb/upb/bazel directory has been removed, requiring adjustments to any builds directly referencing it.

New

  • Starlark Support: Protobuf flags are now available in Starlark (Bazel’s configuration language), enabling more flexible and maintainable build configurations.

Fixes Worth Knowing

  • C++ UTF-8: Fixed UTF-8 validation issues with string extensions in C++.
  • C++ Compatibility: Improved wire compatibility between TestAllTypes and TestAllExtensions for better testing.

Before You Upgrade

  • Bazel Users: Review your Bazel configurations for any direct references to the removed third_party/upb/upb/bazel directory and update accordingly.
Feb 6, 2026
Jan 22, 2026
protocolbuffers/protobufv29.x
7 releases

TL;DR

Protocol Buffers now prevents potential crashes in Python when parsing deeply nested JSON data (JSON format) and restores compatibility with older protobuf compilers.

Breaking

None.

New

None.

Fixes Worth Knowing

  • Python: Resolved a crash when parsing complex JSON structures with json_format.ParseDict.
  • Python: Expanded code generation support to include compilers as old as version 3.20.0.
  • Python: Fixed compatibility issues with NumPy 2.3rc1 (scientific computing library).

Before You Upgrade

None.

Feb 4, 2026
May 28, 2025
Mar 19, 2025
Jan 8, 2025
Dec 18, 2024
Dec 4, 2024
Nov 27, 2024
protocolbuffers/protobufv33.xprerelease
2 releases

TL;DR

Protocol Buffers are preparing for a future release that will remove arena-allocated object constructors, impacting C++ code using these features directly.

Breaking

  • Arena-enabled constructors in arena.h are deprecated (C++ memory management technique).
  • RepeatedField(Arena*) and Map(Arena*) constructors will become private in a future release (C++ arena allocation).

New

None

Fixes Worth Knowing

  • Large Java enums are now correctly handled with the lite runtime (optimized protobuf runtime).

Before You Upgrade

Review your C++ code for direct use of arena-enabled constructors and prepare to migrate to alternative allocation strategies.

Oct 9, 2025
Oct 1, 2025
protocolbuffers/protobufv32.x
2 releases

TL;DR

The latest Protobuf release restores Java ABI compatibility, resolving issues with extension methods after a previous breaking change.

Breaking

  • Java Extension Methods: ABI compatibility for extension methods is restored after being broken in the 4.x release. (Application Binary Interface - ensures code compatibility)

New

  • Plugin Dependencies: Protobuf plugins now receive all necessary option dependencies, simplifying plugin development. (Protobuf plugins - tools extending Protobuf functionality)
  • Generator Interface: Plugin and built-in generators are unified using a request/response interface for improved consistency.

Fixes Worth Knowing

  • Java Optional Dependencies: Corrected handling of optional dependencies within the Java code generator.
  • PHP Composer: Removed an incorrect "provide" entry from the PHP composer.json file.

Before You Upgrade

If you experienced issues with Java extension methods after upgrading to Protobuf 4.x, test thoroughly after this upgrade to ensure compatibility.

Sep 11, 2025
Aug 14, 2025
protocolbuffers/protobufv32.xprerelease
2 releases

TL;DR

Protocol Buffers now supports newer language editions (up to 2024) across Java, C#, Python, PHP, and Ruby, improving compatibility with modern development environments.

Breaking

  • Compatibility restored with older Java runtimes impacted by CVE-2022-3171 (security vulnerability).

New

  • Support for --incompatible_config_setting_private_default_visibility (Bazel build setting) added to Python and Ruby, enabling stricter visibility controls.

Fixes Worth Knowing

  • Rust codegen no longer checks for a specific UPB version (underlying library), resolving potential build issues.

Before You Upgrade

  • If using Bazel, review your build configurations to understand the impact of the new visibility setting.
Aug 5, 2025
Jul 22, 2025
protocolbuffers/protobufv31.x
2 releases

TL;DR

Protocol Buffers now supports customizing feature set defaults (compiler flags) more flexibly, improving control over generated code.

New

  • Feature Set Defaults: You can now inject default values for language-specific features during code generation, offering finer-grained control over Protobuf behavior.

Fixes Worth Knowing

  • Python Typing: Python generated interface files (.pyi) now correctly import the datetime module for Duration and Timestamp fields.
  • Python Recursion: Added limits to recursion depth in the pure Python implementation to prevent crashes with deeply nested messages.

Before You Upgrade

No specific action is needed for this upgrade.

May 28, 2025
May 14, 2025
protocolbuffers/protobufv31.xprerelease
2 releases

TL;DR

The protoc compiler (protocol buffer compiler) now supports specifying import paths directly, simplifying project configuration.

New

  • protoc now accepts an import option, allowing you to define where to find protocol buffer definitions.

Fixes Worth Knowing

  • A regression in the PHP C-Extension has been automatically rolled back, restoring previous functionality.

Before You Upgrade

No action is needed for this upgrade.

Apr 30, 2025
Apr 18, 2025
protocolbuffers/protobufv30.x
3 releases

TL;DR

This release of Protocol Buffers restores generator headers for C++, C#, Objective-C, Python, and Ruby, resolving build issues after a recent change.

Breaking

  • C++: Removal of dllexport attribute may affect custom build configurations. (Affects dynamic library builds)

New

  • Java: Maven artifacts are now correctly namespaced, improving dependency management. (Build tool - Maven)
  • Java: Resolved a concurrency issue in feature resolution for older gencode. (Affects multi-threaded applications)

Fixes Worth Knowing

  • Java: Lite classes are now compatible with JDK8. (Java Development Kit)
  • Bazel: Restored JDK8 compatibility for libraries with Maven dependencies. (Build system - Bazel)

Before You Upgrade

  • If you rely on custom build configurations in C++, verify your dynamic library builds after upgrading.
Mar 26, 2025
Mar 13, 2025
Mar 4, 2025
protocolbuffers/protobufv30.xprerelease
2 releases

TL;DR

This release updates the underlying Abseil dependencies and modifies the UPB library (used by Python, PHP, and Ruby extensions), potentially impacting map iteration behavior.

Breaking

  • UPB Map Iteration: The _upb_map_next function signature has changed and the _nextmutable Map iterator API has been removed. This affects Python, PHP, and Ruby extensions using UPB.

New

[None]

Fixes Worth Knowing

  • C++: Fixed a bug handling implicit-presence string fields.
  • C++: Improved compatibility with older GCC versions.

Before You Upgrade

  • If you use Python, PHP, or Ruby extensions with Protocol Buffers, review your code that iterates over maps to ensure compatibility with the new UPB API.
Feb 27, 2025
Feb 4, 2025
protocolbuffers/protobufv29.xprerelease
3 releases

TL;DR

Protocol Buffers now handles empty strings in numeric fields correctly when parsing JSON, resolving inconsistencies across multiple language implementations.

Breaking

  • Deprecation warnings removed for Timestamp/Duration operations (Java) - these operations may be removed in the future.
  • py_proto_library is now deprecated (Python) - migrate to alternative build systems.

New

  • Go support updated to include proto editions language features.
  • Extension numbers added to SourceCodeInfo and FileDescriptorSet for improved tooling (multiple languages).

Fixes Worth Knowing

  • Corrected JSON parsing for empty strings in numeric fields (PHP, Ruby, Python/PHP/Ruby C-Extensions).
  • Fixed a bug where assigning an empty Struct failed (Python).

Before You Upgrade

  • If using py_proto_library in Python, plan a migration to a supported build system.
Nov 18, 2024
Oct 23, 2024
Sep 30, 2024
protocolbuffers/protobufv28.x
4 releases

TL;DR

Protocol Buffers now correctly handles packed reflection across C++, Java, and Python, resolving a bug introduced in the 2023 edition.

Breaking

None.

New

None.

Fixes Worth Knowing

  • A warning about minor version mismatches has been suppressed in Java and Python.
  • Kotlin manifest files are now populated, improving IDE (Integrated Development Environment) support.

Before You Upgrade

No action is needed.

Oct 22, 2024
Sep 18, 2024
Sep 11, 2024
Aug 28, 2024
protocolbuffers/protobufv27.x
6 releases

TL;DR

Protocol Buffers now includes a recursion check during Java parsing, preventing potential denial-of-service attacks from maliciously crafted protobuf messages.

Fixes Worth Knowing

Java parsing now prevents excessive recursion when handling unknown fields, improving stability and security.

Before You Upgrade

No action is needed to upgrade.

Sep 18, 2024
Aug 27, 2024
Jul 31, 2024
Jun 25, 2024
Jun 5, 2024
May 23, 2024
protocolbuffers/protobufv28.xprerelease
3 releases

TL;DR

Protocol Buffers now includes binary compatibility shims (code adjustments) for Java, allowing continued use of older generated code with newer protobuf versions.

Breaking

  • FieldDescriptor::cpp_string_type() is the new way to inspect field types in C++; direct ctype inspection will be removed in a future release.
  • Objective-C: GPBUnknownFieldSet and related APIs are deprecated.

New

  • Java: Binary compatibility shims restore compatibility with older generated code.
  • Objective-C: Added API to add fields to collections of unknown fields.

Fixes Worth Knowing

  • Objective-C: Fixed issues with copying GPBUnknownField and GPBUnknownFields.
  • Objective-C: Prevents crashes by raising exceptions for nil messages.

Before You Upgrade

  • Objective-C developers should plan to migrate away from GPBUnknownFieldSet and related APIs.
Aug 22, 2024
Aug 8, 2024
Jul 11, 2024
protocolbuffers/protobufv27.xprerelease
3 releases

TL;DR

Protocol Buffers v27 introduces breaking changes for Java users, specifically around extension naming and Maven builds, requiring code updates and migration away from building from source with Maven.

Breaking

  • Java extension names now escape to java_ potentially breaking existing gencode references. (Code generation)
  • Maven builds from source are deprecated and will be removed in a future release. (Build system)

New

  • Improved Java generator organization with separate packages and targets. (Code structure)

Fixes Worth Knowing

  • C++ validation checks for implicit presence are now correct. (Data validation)
  • Resolved Bazel cache issues impacting build performance. (Build tool)

Before You Upgrade

  • Update your Java code to handle the new java_ extension naming scheme.
  • Migrate away from building Protocol Buffers from source using Maven.
May 14, 2024
May 8, 2024
Apr 18, 2024
protocolbuffers/protobufv26.x
2 releases

TL;DR

Protocol Buffers now correctly handles REQUIRED fields in legacy proto definitions, resolving potential compatibility issues when using older protobuf configurations.

Breaking

  • REQUIRED fields now function as expected with the LEGACY_REQUIRED feature enabled. (Older protobuf versions may have ignored this setting.)

New

  • Support for editions language features (experimental protobuf features) is now included for Java and C++. (Allows access to newer protobuf capabilities.)

Fixes Worth Knowing

  • Resolved an issue preventing protobuf from building correctly on Android platforms. (Affects developers targeting Android.)
  • Corrected a validation issue in Java feature handling. (Improves reliability of Java protobuf usage.)

Before You Upgrade

  • If you rely on LEGACY_REQUIRED fields, test your application thoroughly to ensure compatibility with the updated behavior.
Mar 27, 2024
Mar 13, 2024
protocolbuffers/protobufv26.xprerelease
3 releases

TL;DR

This release introduces breaking changes to the Ruby implementation of Protocol Buffers (a data serialization format), specifically regarding internal caching mechanisms.

Breaking

  • Ruby ObjectCache moved: The ObjectCache has been moved into an internal module, requiring code adjustments if you directly accessed it.
  • Ruby memsize functions: New memsize functions for native types may impact existing Ruby code relying on specific memory behavior.

New

[None]

Fixes Worth Knowing

  • CMake improvements: Several fixes improve the robustness of CMake builds, particularly around escaping special characters.

Before You Upgrade

  • Ruby users: Review your code for direct usage of the ObjectCache and adjust accordingly.
Feb 28, 2024
Feb 6, 2024
Jan 25, 2024
protocolbuffers/protobufv25.xprerelease
2 releases

TL;DR

Protocol Buffers gains support for "editions," enabling more controlled evolution of proto definitions and allowing for backward compatibility while introducing new features.

Breaking

  • PHP: Requires PHP 8.0 or higher.
  • Bazel: Dropped support for Bazel 5.

New

  • Editions: Introduces a new system for managing proto definition evolution, allowing for feature sets and controlled compatibility. This impacts C++, Java, and Objective-C code generation.
  • Ruby: Added a new FFI (Foreign Function Interface) implementation.

Fixes Worth Knowing

  • Java: Fixed potential NullPointerException in map builders and improved Timestamp parsing.
  • Python: Resolved issues with object comparisons and memory leaks in the C extension.
  • Ruby: Fixed object cache lookups on 32-bit platforms.

Before You Upgrade

  • If using PHP, ensure your environment is running PHP 8.0 or higher.
  • If using Bazel, upgrade to a version newer than 5.
Oct 18, 2023
Oct 16, 2023
protocolbuffers/protobufv24.x
5 releases

TL;DR

This release improves compatibility for Python users working with Cython (a Python extension language) and reverts a previous code generation change in Java that caused issues.

Breaking

  • C++ code now depends on Abseil’s layout library, requiring you to link against it. (a collection of foundational C++ libraries)

Fixes Worth Knowing

  • Python code generation is now compatible with Cython, resolving issues for users utilizing this tool.
  • A recent Java code generation change was reverted, restoring previous functionality.

Before You Upgrade

  • If you are using the C++ protobuf library, ensure your project links against the Abseil layout library.
Oct 4, 2023
Sep 7, 2023
Aug 25, 2023
Aug 18, 2023
Aug 8, 2023
protocolbuffers/protobufv24.xprerelease
3 releases

TL;DR

This release drops support for Bazel 5, potentially requiring build configuration updates for users of that build system (build automation tool).

Breaking

  • Bazel 5 support removed. (Requires updating build scripts)

Fixes Worth Knowing

  • C++ compilation issues resolved. (Addresses problems with large codebases)

Before You Upgrade

  • If using Bazel, ensure you are on a version newer than 5.
Aug 1, 2023
Jul 18, 2023
Jul 11, 2023
protocolbuffers/protobufv23.x
5 releases

TL;DR

The Protobuf compiler now includes dllexport_decl for generated default instances, improving compatibility when building dynamic libraries (shared code).

New

No new user-facing features.

Fixes Worth Knowing

Java dependencies were updated to Guava 32.0.1, resolving potential dependency conflicts.

Before You Upgrade

No specific action is needed for this upgrade.

Jul 6, 2023
Jun 14, 2023
May 26, 2023
May 17, 2023
May 8, 2023
protocolbuffers/protobufv22.x
6 releases

TL;DR

Protocol Buffers now includes fixes for Windows and MSVC compatibility, ensuring smoother builds and fewer warnings across different environments.

Breaking

None.

New

None.

Fixes Worth Knowing

  • Resolved build warnings on Windows (compilation environment).
  • Fixed an issue in Python where file copying could fail in some projects.
  • Improved symbol exporting from the libprotoc library (core Protobuf tool).

Before You Upgrade

No specific action is needed. These updates primarily address compatibility and stability.

May 10, 2023
May 4, 2023
Apr 12, 2023
Mar 10, 2023
Mar 7, 2023
Feb 16, 2023
protocolbuffers/protobufv23.xprerelease
3 releases

TL;DR

Protocol Buffers improves compatibility with older compilers and linkers, resolving issues experienced with Clang 6 and i386 architectures.

Breaking

  • No breaking changes were introduced; previously announced breaking changes have been reverted to deprecation warnings.

New

  • No new features were introduced in these releases.

Fixes Worth Knowing

  • Python: Corrected an issue preventing proper file copying in some build environments (build systems).
  • C++: Resolved linker issues with Clang 6 (C++ compiler).

Before You Upgrade

  • No specific action is needed for this upgrade.
May 5, 2023
Apr 28, 2023
protocolbuffers/protobufv22.xprerelease
3 releases

TL;DR

Protocol Buffers now supports the retention attribute (metadata about fields) in C++, Java, and Ruby, improving code generation and data handling.

Breaking

  • The const overload of RepeatedPtrField::GetArena is deprecated. (Memory management class)

New

  • Ruby oneof fields now generate hazzers (accessors) for members, simplifying access to oneof values.
  • UPB (underlying library for several languages) now supports extensions with deterministic serialization, ensuring consistent data representation.

Fixes Worth Knowing

  • Fixed issues with parsing map entries containing closed enum values (enumerated types).
  • Improved parsing performance for 32 and 64-bit varints (variable-length integers).

Before You Upgrade

  • If you rely on the const overload of RepeatedPtrField::GetArena, update your code to use the non-const version.
Feb 10, 2023
Feb 2, 2023
protocolbuffers/protobufv21.x
13 releases

TL;DR

Python protobuf users will experience improved compatibility and reliability with fixes for enum ranges, extension fields, and data serialization (data interchange format).

Breaking

  • Extension fields no longer require a synthetic oneof field (internal grouping).

New

  • Python package now includes a license file (software permissions).

Fixes Worth Knowing

  • Resolved an issue causing incorrect enum range handling.
  • Fixed a bug that caused data loss during serialization and deserialization (data interchange).

Before You Upgrade

No specific action is needed.

Dec 14, 2022
Dec 8, 2022
Nov 30, 2022
Oct 26, 2022
Oct 18, 2022
Sep 29, 2022
Sep 14, 2022
Aug 9, 2022
Jul 25, 2022
Jul 20, 2022
Jun 24, 2022
May 27, 2022
May 26, 2022
protocolbuffers/protobufv3.x
62 releases

TL;DR

Java users should upgrade to address a security vulnerability and benefit from significant performance improvements in parsing and merging Protocol Buffer (data serialization format) messages.

Breaking

  • No breaking changes.

New

  • No new features.

Fixes Worth Knowing

  • Java: Resolved a security advisory (GHSA-h4h5-3hr4-j3g2).
  • Java: Improved parsing performance by merging directly from the wire format, reducing allocations and copies.
  • Java: Fixed an issue in the TextFormat parser (human-readable format) for recurring sub-messages.

Before You Upgrade

Sep 29, 2022
Sep 29, 2022
Sep 29, 2022
Sep 14, 2022
Sep 14, 2022
Sep 14, 2022
Apr 22, 2022
Mar 25, 2022
Jan 28, 2022
Jan 11, 2022
Jan 5, 2022
Jan 5, 2022
Jan 5, 2022
Oct 29, 2021
Oct 20, 2021
Oct 5, 2021
Sep 15, 2021
Jun 8, 2021
Jun 2, 2021
May 24, 2021
May 13, 2021
May 7, 2021
Apr 8, 2021
Apr 2, 2021
Mar 11, 2021
Mar 5, 2021
Mar 3, 2021
Feb 25, 2021
Feb 23, 2021
Feb 20, 2021
Feb 18, 2021
Nov 13, 2020
Aug 15, 2020
Jul 29, 2020
Jun 3, 2020
May 26, 2020
May 20, 2020
May 15, 2020
Feb 14, 2020
Feb 2, 2020
Dec 13, 2019
Dec 3, 2019
Nov 26, 2019
Oct 29, 2019
Oct 3, 2019
Sep 23, 2019
Aug 6, 2019
Jul 12, 2019
May 28, 2019
Mar 26, 2019
Feb 28, 2019
Jul 31, 2018
Jun 19, 2018
Dec 20, 2017
Nov 13, 2017
Sep 15, 2017
Aug 15, 2017
May 4, 2017
Feb 17, 2017
Sep 24, 2016
Sep 6, 2016
Jul 28, 2016
protocolbuffers/protobufv21.xprerelease
2 releases

TL;DR

Protocol Buffers now provides more informative errors when generated code is outdated, improving the developer experience when working with protobuf definitions.

Fixes Worth Knowing

Python code generation now includes more helpful error messages when generated code is out of date. Additionally, reference leaks in Python have been resolved, and a crash in PHP has been fixed.

Before You Upgrade

Ensure your build tools are up-to-date, especially if you are building on Windows or targeting the x64-mingw-ucrt platform (Windows cross-compilation).

May 19, 2022
May 11, 2022
protocolbuffers/protobufv3.xprerelease
28 releases

TL;DR

PHP developers using Protocol Buffers can now successfully build the packaged PHP extension, resolving a recent build failure.

Breaking

  • None

New

  • None

Fixes Worth Knowing

  • PHP extension builds now succeed.

Before You Upgrade

  • If you previously encountered errors building the PHP extension with version 3.20.0, upgrade to this release.
Apr 6, 2022
Mar 17, 2022
Mar 4, 2022
Oct 19, 2021
Oct 16, 2021
Sep 1, 2021
Aug 19, 2021
May 11, 2021
May 7, 2021
May 5, 2021
Apr 6, 2021
Feb 17, 2021
Feb 10, 2021
Nov 12, 2020
Nov 11, 2020
Nov 6, 2020
v3.13.0-rc3v3.13.0-rc3
Aug 13, 2020
May 12, 2020
May 4, 2020
Nov 22, 2019
Nov 20, 2019
Sep 5, 2019
Jun 26, 2019
May 1, 2019
Feb 22, 2019
Feb 1, 2019
Jan 30, 2019
Jan 19, 2017
protocolbuffers/protobufv-1.x
8 releases

TL;DR

Protocol Buffers now offers deterministic serialization in C++, enabling consistent message grouping for applications like MapReduce, though it's not cross-language or build-stable.

Breaking

  • Objective-C map support methods were renamed to avoid conflicts with system KVO (Key-Value Observing) features.
  • Java Lite support is removed from the core protocol compiler; use a plugin instead.

New

  • C++: Added deterministic serialization for consistent byte representation of equal messages.
  • Multiple Languages: Added options to ignore unknown fields when parsing JSON, improving flexibility.

Fixes Worth Knowing

  • C++: Resolved a memory leak when releasing messages allocated on an arena.
  • Python: Corrected the order of fields in JSON Any messages.
  • JavaScript: Maps now function with a proper map API.

Before You Upgrade

  • Objective-C users: Update code referencing map support methods to reflect the new naming scheme.
Jul 20, 2016
Jun 14, 2016
May 16, 2016
Dec 30, 2015
Aug 27, 2015
May 29, 2015
Feb 26, 2015
Dec 11, 2014
protocolbuffers/protobufv2.x
4 releases

TL;DR

Protocol Buffers now offers a new “import public” feature, simplifying proto file organization and migration by controlling which imported definitions are re-exported to dependent files.

Breaking

  • Java compatibility now extends to JDK 1.5; code relying on JDK 1.6-specific features will need updating.
  • The default behavior for enum aliases will change in a future release; projects using aliases should explicitly set allow_alias to true in their .proto files.

New

  • “import public” allows controlled re-export of imported proto definitions.
  • Java now includes a faster Parser for direct message parsing (~25% faster than using a Builder).
  • Python gains dynamic message creation via DescriptorDatabase and MessageFactory (similar to C++ counterparts).

Fixes Worth Knowing

  • Java now correctly serializes messages with a defined serialVersionUID (serialization).
  • Java now allows “Object” as a valid message name.
  • Python preserves unknown fields after parsing.

Before You Upgrade

  • If your Java code relies on JDK 1.6 features, update it to be compatible
Mar 25, 2015
Mar 25, 2015
Oct 21, 2014
v2.6.0v2.6.0
Aug 28, 2014