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

Protocol Buffers

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe

Protocol Buffers 23.0

  -  2.7 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 23.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:

Compiler:
- Implement a retain_options flag in protoc
- Make protoc --descriptor_set_out respect option retention
- Modify release artifacts for protoc to statically link system libraries
- Extension declaration: Enforce that if the extension range has a declaration then all extensions in that range must be declared. This should prevent non-declared extensions from being added.
- Implement "reserved" for extension declaration
- Open-source extension declaration definition

C++:
- Fix(libprotoc): export useful symbols from .so
- Turn off clang::musttail on i386
- Fixes Clang 6 linker bug
- Remove PROTOBUF_DEPRECATED in favor of [[deprecated]]
- Add assert to the list of keywords for C++
- Added Reflection::GetCord() method in C++
- Support C++ protobuf ctype=CORD for bytes field
- Expand LazySerializerEmitter to cover proto3 cases
- Unconditionally generate unknown field accessors
- Introduce proto filter for inject_field_listener_events
- Add ParseFromCord to TextFormat
- Mark proto2::Arena::GetArena as deprecated

Java:
- Adds Timestamps.now()
- Added Reflection::GetCord() method in C++
- Re-attach OSGI headers to lite,core, and util. This information was dropped in the move from maven to bazel.
- Add Java FileDescriptor.copyHeadingTo() which copies file-level settingspackage, file options) to FileDescriptorProto.Builder
- Remove unnecessary has bits from proto2 Java
- Add casts to make protobuf compatible with Java 1.8 runtime
- Fix mutability bug in Java proto lite: sub-messages inside of oneofs were not
- Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes

Kotlin:
- Remove errorprone dependency from kotlin protos

Csharp:
- Make json_name take priority over name
- Add C# presence methods to proto3 oneof fields

Objective-C:
- Enforce the max message size when serializing to binary form
- Mark mergeFromData:extensionRegistry: as deprecated

Python:
- Fix bug in _internal_copy_files where the rule would fail in downstream repositories.
- Make numpy/pip_deps a test-only dependency.
- Fix Python bug with required fields
- Mark deprecated SupportsUnknownEnumValues on Message reflection. Use FieldDescriptor or EnumDescriptor instead.
- Raise warnings for MessageFactory class usages
- Add Python support for retention attribute
- Document known quirks of EnumDescriptor::is_closed() when importing across files with different syntaxes

Python C-Extension:
- Fix Python bug with required fields
- See also UPB changes below, which may affect Python C-Extension

PHP:
- RepeatedField: unset by index

PHP C-Extension:
- RepeatedField: unset by index
- See also UPB changes below, which may affect PHP C-Extension

Ruby:
- Change the Ruby code generator to emit a serialized proto instead of the DSL
- Feat(6178): emit ruby enum as integer

Ruby C-Extension:
- Feat(6178): emit ruby enum as integer
- Ruby: Implement Write Barriers
- See also UPB changes below, which may affect Ruby C-Extension.

UPB:
- Implements upb_Message_DeepClone

- Other:
- Fix: missing -DPROTOBUF_USE_DLLS in pkg-config
- Avoid using string(JOIN..., which requires cmake 3.12
- Bump Abseil submodule to 20230125.3
- Fix btree issue in map tests.
- Fix declared dependencies for pkg-config
- Fix build for newlib
- Update usage disclaimer on FieldOptions.ctype
- Add config option to print 64-bit integers in JSON as unquoted ints if they can be losslessly converted into a 64-bit float.
- Version protoc according to the compiler version number.
- Fix shared object ABI exports
- Ensure VarintParseSlowArm{32,64} are exported with PROTOBUF_EXPORT
- Update the min required CMake version to 3.10

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe