protobuf

Protocol Buffers·Google.Protobuf

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

winget install --id Google.Protobuf --exact --source winget

Latest 36.0·August 20, 2026

Release Notes

Announcements

Protobuf News may include additional announcements or pre-announcements for upcoming changes. • Migration Guide 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/7864b8534c4425ac98eee69b57600fd15ea8bf9b) • C++Proto JSON:Align behavior on the type.proto path with the descriptor.proto path (https://github.com/protocolbuffers/protobuf/commit/0bc1f14c966a6714f757cdebf9dcc1f2ec3bb928)

Java

With this release JavaProto no longer uses sun.misc.Unsafe as long as you are utilizing the standard generated code. You should no longer see warnings printed about sun.misc.Unsafe. If you see any issues, please let us know on https://github.com/protocolbuffers/protobuf/issues/20760

Note that the runtime itself still contains references to sun.misc.Unsafe in paths which are exclusively to support Lite generated code. Lite is emitted by a separate code generator which creates generated code optimized for mobile clientside contexts, especially alongside R8 optimizations. Android does not have a timeline to removing sun.misc.Unsafe, and we have found the performance regression too significant to consider removing these paths at this time. It is still TBD for how we can best navigate this mobile vs JVM split on this topic.

• 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) • Json/java:add json_name enumval support (https://github.com/protocolbuffers/protobuf/commit/bff6ed13255054eb8425f75f3b3f00af961f753d) • Make Timestamps.parse() attempt non-lenient parsing first and warning if this fails. (https://github.com/protocolbuffers/protobuf/commit/d5e039a3021524ea1f1d68b2cf910f2379403a0e) • Add a warning for potential OneofDescriptor collisions prior to Q1 2027 breaking changes. (https://github.com/protocolbuffers/protobuf/commit/ab6983138057ae4e2bc7ce4a7e8d853d5403913a) • Make default_symbol_visibility STRICT in edition 2026 (https://github.com/protocolbuffers/protobuf/commit/fcd68c563cf2be486622a118caaf8c5f3858f744) • Reject negative size in mergeDelimitedFrom (#28097) (https://github.com/protocolbuffers/protobuf/commit/c56cd5b4417249e091ccce3739b4e4176ac33403) • Add deprecation warnings for (py|cc|java)_generic_service. (https://github.com/protocolbuffers/protobuf/commit/517be42cfe43c9e2c69f5ee40e437a9d8cbd3f99) • Update Java protobuf generator to use Objects.requireNonNull (https://github.com/protocolbuffers/protobuf/commit/31ef11cb59a269acf8a20aa40373ae5c59a30a9f) • Use natural String comparison instead of UTF-8 ByteString comparison for sorting map keys in JsonFormat. (https://github.com/protocolbuffers/protobuf/commit/ae1faeedfd57b2cdc4c26e7befe4d34138210494) • Add option to enable strict JSON parsing in Protobuf Java JsonFormat. (https://github.com/protocolbuffers/protobuf/commit/40825a1df7f87857560a03bf901fdd7649930010) • Add bazel targets for standalone plugin binaries (#23919) (https://github.com/protocolbuffers/protobuf/commit/81880fad1673797b6326a91582b2bf77069d505d) • Remove experimental FieldOrder enum. (https://github.com/protocolbuffers/protobuf/commit/ec52338ef068245df952ecbfcfee8ad3fb44a180) • Optimize GeneratedMessage.ExtendableBuilder to avoid temporary allocations when merging empty extendable messages. (https://github.com/protocolbuffers/protobuf/commit/a37dbd643372b05de834190941671a1563d7e499) • Stop using sun.misc.Unsafe in isValidUtf8 paths. (https://github.com/protocolbuffers/protobuf/commit/421d7451ef41e158cd1ec3b84709de4018500b82) • Use String#encodedLength on JDK versions that support it (https://github.com/protocolbuffers/protobuf/commit/efca121a668ecc73ca010c9457ba35bf189c01ec) • Add an enforce_proto_limits feature which will be implemented in Edition 2026. (https://github.com/protocolbuffers/protobuf/commit/5ddd5244f7a04539e59f97fbc0c0df02334d0b12) • Java:limit numeric string length before BigDecimal parsing (#26908) (https://github.com/protocolbuffers/protobuf/commit/25e7005814c4b2dd1cd21519c6cf116380a5ad21) • Validate java package and class against injection risks. (https://github.com/protocolbuffers/protobuf/commit/f8514d8c42af41fbaaa73cd095e5e16cf347a23f)

Csharp

• Cache custom JSON enum names in JsonParser using Lazy. (https://github.com/protocolbuffers/protobuf/commit/156d42deee0f8d1f571a567b5ff6a01a769dbf2c) • Csharp:add support for custom json strings for enum values (https://github.com/protocolbuffers/protobuf/commit/f11aac42193dceeb3f548be48ca4f9a5b50381ca) • Validate language-specific namespace options in code generators (#28667) (https://github.com/protocolbuffers/protobuf/commit/34e959b42c181ef881c17d9b382b7eac0aaeef01) • Make default_symbol_visibility STRICT in edition 2026 (https://github.com/protocolbuffers/protobuf/commit/fcd68c563cf2be486622a118caaf8c5f3858f744) • Advertise that C# supports Edition 2026, and move C# Nullable Reference Type support into that edition. (https://github.com/protocolbuffers/protobuf/commit/a1f718cdd7703878f35a521cfdb019bc8e129004) • First implementation of C# nullable reference types enablement using the current (unreleased) edition. (https://github.com/protocolbuffers/protobuf/commit/7a732d1fb803e2c8df600838e554ac3ebeb0c7ef) • Add bazel targets for standalone plugin binaries (#23919) (https://github.com/protocolbuffers/protobuf/commit/81880fad1673797b6326a91582b2bf77069d505d) • Csharp:propagate recursion depth into JsonReplayTokenizer to honor Any nesting limit (#26835) (https://github.com/protocolbuffers/protobuf/commit/cee45bff13ca18981453b170ea1725d0119e858f) • Fix csharp string interpolation in Timestamp.ToDateTime() exception message (#26341) (https://github.com/protocolbuffers/protobuf/commit/a29828239fcef702b485dddae09e13306b23fcd1)

Objective-C

• [ObjC] Carry recursion depth across MessageSet item parsing (#27571) (https://github.com/protocolbuffers/protobuf/commit/f89baedfd2984c2ee08f9fd1ddf5708f2cc7e3aa) • Add bazel targets for standalone plugin binaries (#23919) (https://github.com/protocolbuffers/protobuf/commit/81880fad1673

Installer type: zip

x8650B904FE09980EB44D566755EB65B4693A0DEAC30998EA3323C6901D9540E60D
x64510FB2369A4720ADB457783768C5E1481A0E1137D9E7694478DFE9B8FE445DC1

Details

Homepage
https://github.com/protocolbuffers/protobuf
License
Proprietary
Publisher
Protocol Buffers
Support
https://github.com/protocolbuffers/protobuf/issues
Copyright
Copyright 2008 Google Inc.

Tags

marshallingprotobufprotobuf-runtimeprotocprotocol-buffersprotocol-compilerrpcserialization

Older versions (23)

35.1
x86E0C1B5BE94C0DE8ECD1F4D509BDFB344E6464E68ADA27C039113DD474B318C51
x645D3FF218D7D91EEA95F7569BCB5A98F3030F8996D44151279D9772EDCFF76082
35.0
x8699FF33772CA055CD096782D05395BBCC4B6187CCE284D2A914FC3745D3ECB6B6
x64D1CEDE9E308CC3EB072392AF1C02CCAE4BDD3D2F374EC2970DBD8CDFDAA91363
34.1
x8614F5696F6F1BA37E91488BE39B0EA59BB2230CDE266E63F6F65610B3C5F54550
x646D7EBDC75E9C1F0026D4FB28F17EF1D0AAE77D36744D83A9E052D79BA493724F
34.0
x8689512676CE87D2A7ABCE535DF366D1EC3CC2A36BA551A12DF9158DB240E014AA
x6476DDEB5AE7A31C8F9F7759D3B843A4CADDA2150AC037AD0C1794665D6CF31FCE
33.5
x866BF9A1D83289664CBBC9A95FC3889C971B9F028C0E6F617BA800BAC401C36BE1
x647E3468CD1FBD1AE9361A5304D4AC28FBD593AA1A425B5464BD9D4DA5FCA224B4
33.4
x865B7069E637D628171D62C3982B2D4F10EC2CCE7642E028B6FC4873BC19796B25
x640B31BE019B9FE45A388E93BF1F16D70AFDF9CE5CAF958EA47892FBC868B5A1B3
33.3
x86B45B084DE3F44FC0328E1547186ABEB4F5438FDB3C3EC5F26288CAD260034D39
x641B845F9C78080033064509325E191670E09FBC74F966587F8E752557374D56AD
33.2
x86BB76077C45A4254A65F06F746DDA9CD346D8B555AB1A25EBC55548829C06B4CE
x64376770CD4073BEB63DB56FDD339260EDB9957B3C4472E05A75F5F9EC8F98D8F5
33.1
x86F52A79CE2A70D421F55BE880D3AF48D6B22865F2119DD63DF6423D1CE9027E31
x64D7A207FB6EEC0E4B1B6613BE3B7D11905375B6FD1147A071116EB8E9F24AC53B
33.0
x863941CC8AEB0E8F59F2143B65F594088F726BB857550DABAE5D0DEE3BF1392DD1
x643742CD49C8B6BD78B6760540367EB0FF62FA70A1032E15DAFE131BFAF296986A
32.1
x86BC91A9FBA925F025C06F152128BFB5D233CB1C75420D8877A5120F01DEF79898
x6469569CBC178CD5785ECB7D93569913110677EAFEB4B8F82970C361FAD4C7CD66
32.0
x8611B6D3662B179E277D8AF34A87700DC4ECB2B5695168AC65226798A2798AFD48
x6489C178E9F878CB6DD561F677688E1EB2E757CB9AC84AE30B64436BAC19646996
31.1
x8674C4E34A41C654934A1F4C7D5E3F831A7B216D867717CDF730F82E1E10C1D0E2
x6470381B116AB0D71CB6A5177D9B17C7C13415866603A0FD40D513DAFE32D56C35
31.0
x86EC49AE24DB4DAA94C40E5AFCC047D309A61EE15F95451AD8E5C7A13FD3FDB9B7
x64D7EDEE5D0D5D6786C92E77A4F511E4698A5AA922C6390B6D08C3A79935A651B0
30.2
x865CAE95ACDF1690C0A24F187DBA7CBA25D8EE60085CC951A7D9274CFE0771D916
x6410F35DF7722A69DDE8EE92B4A16A4E1CC91CFCE82FBB4A371BD046DE139AA4A9
29.6
x8623A0E6E68CA31DC32B89C597DC88E78A7698B2565BA7495775CCC15DC4DD0A88
x641EBD7C87BAFFB9F1C47169B640872BF5FB1E4408079C691AF527BE9561D8F6F7
29.3
x86C7C8028C1C4D801C53602920F2C86892054086BD965B6B23A4BA95D211DCB1D4
x6457EA59E9F551AD8D71FFAA9B5CFBE0CA1F4E720972A1DB7EC2D12AB44BFF9383
29.1
x647EA48225857FFC1224588C335C2B1AF9D78A18AF9D57C0528CCA3193E336E9CE
x861105E0FA64459F0B1AF5EE4D5877DAB864F2E10D8AEB04618F2B69C6C3A6ED03
28.3
x64ce64f49bdeddef49ce4bd313a8f59bcf92fcf67b5831efbf66170386d2e66948
x86b08fe6fccf4313e2ccc6fd726dc855ee890533e247f4c543c987ffd980cfd5b2
27.1
x64DA531C51CCD1290D8D34821F0CE4E219C7FBAA6F9825F5A3FB092A9D03FE6206
x866263718FF96547B8392A079F6FDF02A4156F2E8D13CD51649A0D03FB7AFA2DE8
25.7
x86876271BBF157C9DA7596FC711449D5DF946A02CA56E9C485B54AAD908F64FFF7
x646DAB7C408BCC2C6637BADB3B4BBD98C32BC04B527BCDB157139431ED2227B91B
25.4
x860A3EE77411834D3C298042B31F025C150A322E2F067DAA1B1589C0F8B28A9A37
x64272E05C916A7C99C51B3DB61574639D4CB97F1A4A4880F62EB4BF72D0CC1C8A9
25.3
x64D6B336B852726364313330631656B7F395DDE5B1141B169F5C4B8D43CDF01482
x86B9E7F2488C24BB3F3D507E125A9944A44DDFB09F2DB6F84860319E6A7C75F137