Open-source cross-platform data format used to serialize structured data

Protocol Buffers

Protocol Buffers 29.0

  -  3 MB  -  Freeware

Sometimes latest versions of the software can cause issues when installed on older devices or devices running an older version of the operating system.

Software makers usually fix these issues but it can take them some time. What you can do in the meantime is to download and install an older version of Protocol Buffers 29.0.


For those interested in downloading the most recent release of Protocol Buffers or reading our review, simply click here.


All old versions distributed on our website are completely virus-free and available for download at no cost.


We would love to hear from you

If you have any questions or ideas that you want to share with us - head over to our Contact page and let us know. We value your feedback!

What's new in this version:

Announcements:
- Protobuf News may include additional announcements or pre-announcements for upcoming changes

Bazel:
- Add missing line to docstring after Args
- Fix proto_info_bzl
- Use rules_cc everywhere in protobuf
- Upgrade rules_cc to 0.0.13
- Convert proto toolchain string to Label
- Prepare supporting targets for testing
- Support --incompatible_enable_proto_toolchain_resolution
- Move ProtoInfo and ProtoLangToolchainInfo from Bazel
- Move java_{lite_}proto_library from Bazel repository
- Move proto_toolchain from rules_proto to protobuf
- Move proto_library from Bazel repository
- Move proto_common implementation from Bazel binary

Compiler:
- Begin adding extension numbers to SourceCodeInfo and FileDescriptorSet for tooling purposes.
- Update protoc release to include editions language features proto for Go
- Introduce lifetimes for individual feature values.
- Windows - Fix handling of utf8 command line arguments
- Limit feature deprecation warnings to reduce noise.

C++:
- Fix C++ ifndef_guard printer to also convert "-" to "_"
- Fix C++ codegen namespace printer to print closing namespaces in reverse order
- Fix raw_ptr.cc on exotic architectures
- Fix cord handling in DynamicMessage and oneofs
- Fix packed reflection handling bug in edition 2023
- Add JsonStreamToMessage method
- Introduce lifetimes for individual feature values
- Insert software prefetches into merge functions. This improves performance when hardware prefetchers are disabled on AMD machines.
- Insert software prefetches into proto parsing functions. This improves performance when hardware prefetchers are disabled on AMD platforms.
- Add prefetching of subsequent extensions in ExtensionSet::ForEach
- Remove the AnyMetadata class and use free functions instead
- Add [[deprecated]] attribute when generating enums and classes
- Use linear search instead of binary search in flat mode of ExtensionSet
- Prepare MessageLite::GetTypeName to be upgraded to return
- Limit feature deprecation warnings to reduce noise
- Add Compiler Condition to use inline assembly optimizations with ARM64 for Compatibility with MSVC
- Enable small object optimization
- Return backing array memory to arena in ExtensionSet
- In edition 2024, Enum_Name(value) functions return absl::string_view by default
- Add Prefetchers to Proto Copy Construct to help address load misses
- Reduced nesting in GenerateByteSize: slight readability improvements in generated code
- Introduce FieldDescriptor::cpp_string_type() API to replace direct ctype inspection which will be removed in the next breaking change
- Update the comment of TextFormat::Printer::RegisterMessagePrinter that the method takes ownerhip of the printer pointer
- Prepare the code for migrating return types from const std::string& to

Java:
- Remove deprecation warnings for Timestamp and Duration add/subtract/between that we do not yet have alternatives to.
- [29.x] Add missing java load
- Give Kotlin jars an OSGi Manifest
- Re-export includingDefaultValueFields in deprecated state for important Cloud customer
- Restore compatibility with 3.22 gencode by re-adding mutableCopy helpers
- Speed up CodedOutputStream by extracting rarely-executed string formatting code
- Return constant Value objects for true, false, and ""
- Optimise CodedOutputStream.ArrayEncoder.writeFixed32NoTag/writeFixed64NoTag
- CodedOutputStream: avoid updating position to go beyond end of array
- Convert IndexOutOfBoundsException to OutOfSpaceException in UnsafeDirectNioEncoder
- Suppress ReturnValueIgnored errorprone issues
- Fix packed reflection handling bug in edition 2023
- Move cc_proto_library from Bazel repository
- Protobuf Lite ArrayLists: Defer allocating backing array until we have some idea how much to allocate
- Allocate correct-sized array when parsing packed fixed-width primitives
- Bugfix: Make extensions beyond n=16 immutable.
- Reserve capacity in ProtobufArrayList when calling Builder.addAllRepeatedMessage(Collection)
- Avoid allocating iterators when calling Message.Builder.addAllFoo(RandomAccess List)
- Remove the AnyMetadata class and use free functions instead