-
Latest Version
-
Operating System
Windows 10 (64-bit) / Windows 11
-
User Rating
Click to vote -
Author / Product
-
Filename
protoc-28.0-win64.zip
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 28.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:
- UPB text encoder without using reflection for Rust
- Enable MessageLite::DebugString to use Message::DebugString where possible
- Always report plugin support errors from protoc.
- Stop supporting EDITION_PROTO2 as an alias for EDITION_LEGACY
- Rename DynamicCastToGenerated/DownCastToGenerated to
- Mark deleted fields in descriptor.proto reserved
- Protoc: support inf, -inf, nan, and -nan in option values
C++:
- Move -Werror to our test/dev bazelrc files.
- Introduce FieldDescriptor::cpp_string_type() API to replace direct ctype inspection which will be removed in the next breaking change
- Removed specific MSVC settings when installing
- Omit the _raw_default_instance_ declaration when using DLL linkage
- Enable MessageLite::DebugString to use Message::DebugString where possible
- Fix a bug in which proto code uses ctype instead of string_type internally
- Add an optimization that prevents an exponential number of comparisons on deeply
- Replace FindHelper() with BucketNumber() when only the bucket number is required
- Stop supporting EDITION_PROTO2 as an alias for EDITION_LEGACY
- Rename DynamicCastToGenerated/DownCastToGenerated to
- Prohibit using features in the same file they're defined in
- Implement new Debug API with redaction
- Use bool HasHasbits(const FieldDescriptor*) instead of manual checks
- Add java to reserved names to escape extensions to java_. This may break existing references to gencode for extensions named java.
- Put arena cleanup nodes on a separate chunked list instead of at the ends of arena blocks
- Fix validation checks of implicit presence
- Clarify map behaviors in editions
- Protoc: support inf, -inf, nan, and -nan in option values
Java:
- Binary compatibility shims for GeneratedMessageV3, SingleFieldBuilderV3, RepeatedFieldBuilderV3, and their nested classes to restore binary compatibility with <=v3.x.x generated code built against v3.x.x prior to v4.26.0 breaking release.
- Remove unused pom.xml files.
- Add overload for LazyStringArrayList.add(String): boolean
- Hoist SmallSortedMap.getNumArrayEntries() outside loops over array entries
- Omit the _raw_default_instance_ declaration when using DLL linkage
- Java: Deprecate newExtensionWriter
- Immutable java: Use new lower-allocation extension serialization APIs from gencode
- Reserialize all unresolved features using java features from the generated pool in case of descriptors from the custom pool.
- Fix delimited inheritance in all languages
- Full java runtime: Avoid allocating ArrayList iterators when serializing UnknownFieldSet
- Move back deprecation of java utf8 feature to 2024
- Reparse unknown features using extension registry containing Java features
- Remove field SmallSortedMap.maxArraySize
- Delete unused method SmallSortedSet.getOverflowEntriesDescending
- Avoid allocating FieldSet iterator if FieldSet is empty
- Lazily resolve features for proto2 and proto3 for compatibility with old open source gencode that does not invoke feature resolution from gencode static init
- Implement new Debug API with redaction
- Replace SmallSortedMap.EmptySet with equivalent Collections.emptySet()
- Add java to reserved names to escape extensions to java_. This may break existing references to gencode for extensions named java.
- Avoid allocating TreeMap in UnknownFieldSet.Builder.asMap
- Avoid allocating iterator in TextFormat printing UnknownFieldSet
- Add null to the list of reserved words
- Add UnknownFieldSet.isEmpty
- Java full runtime: Avoid allocating when calling asMap on empty UnknownFieldSet
- Return the default instance when parsing from an empty byte[]
- Deprecate building from source with Maven to be removed in 4.28.x
- Java full runtime: Avoid allocating iterator if UnknownFieldSet's TreeMap is empty
- Proto java full runtime: avoid allocating Integers accessing enum lists
- Split bootstrapped java_features.proto to keep it from leaking out
- Java Proto lite: avoid boxing Integers accessing enum lists
- In the Kotlin DSL, reference builder methods with property syntax
- Java Proto Lite: Serialize repeated enums without allocating
- Avoid boxing when serializing primitive lists in CodedOutputStreamWriter
Kotlin:
- Remove unused pom.xml files.
- In the Kotlin DSL, reference builder methods with property syntax
Csharp:
- Fix delimited inheritance in all languages
- Handle groups in C# JsonParser
- Introduce MessageDescriptor.IsMapType in C# reflection to make it easier to tell whether a given message was generated by protoc for a map field
- C#: Fix discovery of oneof declarations in descriptor protos
Objective-C:
- [ObjC] Issue stderr warnings for deprecated generation options
- [ObjC] Add api to add a field to another collection of unknown fields
- [ObjC] Fix GPBUnknownField/GPBUnknownFields copy
- [ObjC] Raise an exception for a nil message
- [ObjC] Deprecate GPBUnknownFieldSet and related apis
- [ObjC] More tests around unknown to known failure cases
- [ObjC] Support errors when merging unknown fields to a message
- [ObjC] Add apis for removing things from GPBUnknownFields
- [ObjC] Collect unknown fields as data
- [ObjC] Internal helper for getting the unknown field data from a message
- [ObjC] Update tests to use both unknown fields apis
- [ObjC] Deprecate GPBTextFormatForUnknownFieldSet()
- [ObjC] Parsing helper and tests around unknown fields
- [ObjC] Add test around enum unknown values
- [ObjC] Expose a helper for stream error
- [ObjC] Support MessageSet with GPBUnknownFields
- [ObjC] Update MessageSet Parsing
- [ObjC] Validate MessageSet expectations
- [ObjC] Improve parsing validations
- [ObjC] Add Swift helpers for GPBUnknownFields/GPBUnknownField
- [ObjC] Introduce the new GPBUnknownFields type
- Rename DynamicCastToGenerated/DownCastToGenerated to
Rust:
- Move -Werror to our test/dev bazelrc files
- Add visibility for rust public aliases for '@protobuf//:protobuf_rust'
- UPB text encoder without using reflection for Rust
- Enable MessageLite::DebugString to use Message::DebugString where possible
- See also UPB changes below, which may affect Rust
Python:
- Raise warnings for deprecated python cpp extension GetDebugString()
- Remove service.py usages in builder
- Raise warnings for deprecated google/protobuf/reflection.py APIs
- Nextgen Proto Pythonic API: Struct/ListValue assignment and creation
- Fix delimited inheritance in all languages
- Make bytearray work
- Nextgen Proto Pythonic API: Timestamp/Duration assignment, creation and calculation
- Update rules_python to 0.28.0
- Nextgen Proto Pythonic API: “Add-on” proto for length prefixed serialize/parse
- Rename DynamicCastToGenerated/DownCastToGenerated to
- Fixed printing of nan floats/doubles in Python.
- Nextgen Proto Pythonic API: “Add-on” proto for JSON serialize/parse
- Nextgen Proto Pythonic API: “Add-on” proto for serialize/parse
- Use struct instead of ctype. allows the protobuf python library to work on cpython 3.11's new wasm target [1]
- Nextgen Proto Pythonic API: Add 'in' operator
- Automated rollback of commit f799af8
- Catch all the exceptions in python JSON ParseDict and raise
PHP:
- Chore(php): conformance testing for edition
PHP C-Extension:
- Fix segmentation faults with enabled keep_descriptor_pool_after_request
- See also UPB changes below, which may affect PHP C-Extension.
Ruby:
- [Ruby] Warn if assigning a "UTF-8" string with invalid UTF-8
- Remove Arena_pin in favor of adopting the UPB freezing API
- Fix Ruby FFI to pass MiniTable to upb_Message_New() aka new_message_from_def()
Ruby C-Extension:
- Move -Werror to our test/dev bazelrc files
- [Ruby] Warn if assigning a "UTF-8" string with invalid UTF-8
- [Ruby] Fix mismatched pointer type
- Remove Arena_pin in favor of adopting the UPB freezing API
- See also UPB changes below, which may affect Ruby C-Extension
UPB
- Move -Werror to our test/dev bazelrc files
- UPB text encoder without using reflection for Rust
- Fix delimited inheritance in all languages
- Fixed printing of nan floats/doubles in Python
Other:
- Remove --copt="-Werror" from .bazelrc
- Remove protobuf rust from BCR presubmits for now
- Set -ex in test_java.yml
- Refactor java maven GHA test to use our generated jars
- Remove /utf-8 flag added in #14197
- Downgrade CMake to 3.29 to workaround Abseil issue
- Add minimal Python support to MODULE.bazel
- Fix(bazel/python): incompatible_enable_proto_toolchain_resolution
- Add Rust support to MODULE.bazel
- Add rules_fuzzing dependency to MODULE.bazel
- Reenable FFI tests on CRuby
- Update comment for message_type
- Enable textproto conformance tests for "-0" and "-0F"
- Fix #10007: Propagate msvc-style link flags to clang-cl with Bazel
- Add system_python to protobuf_deps.bzl
- OperaOpera 115.0 Build 5322.109 (64-bit)
- 4K Download4K Video Downloader+ 1.10.3 (64-bit)
- PhotoshopAdobe Photoshop CC 2025 26.2 (64-bit)
- OKXOKX - Buy Bitcoin or Ethereum
- iTop VPNiTop VPN 6.2.0 - Fast, Safe & Secure
- Premiere ProAdobe Premiere Pro CC 2025 25.1
- BlueStacksBlueStacks 10.41.642.1001
- Hero WarsHero Wars - Online Action Game
- TradingViewTradingView - Trusted by 60 Million Traders
- LockWiperiMyFone LockWiper (Android) 5.7.2
Comments and User Reviews