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 35.0

Release Notes

Announcements

  • Protobuf News may include additional announcements or pre-announcements for upcoming changes. Bazel
  • Bazel 9 Support: Upgrade tests to Bazel 9 (3ee8d8a)
  • Moved protocopt flag out of the cc dir, since it is not a c++-specific flag. (325d8dc)
  • Add support for bazel 9.x (#26201) (f08d703)
  • Change @protobuf//bazel/flags:prefer_prebuilt_proto flag to True. (f9f32d2)
  • Dropped support for Bazel 7. (1816758) Compiler
  • Implement the Edition 2026 naming style enforcement feature. This will help prevent field name collisions. (ae0d964)
  • Add enum to enforce_naming_style feature to avoid field naming collisions which will be implemented in Edition 2026. (e4911a1)
  • Fail writing files in protoc CLI if any file output path is relative. (3bf2b07)
  • Mangle types named XyzView if there is any direct sibling named Xyz (63d6ef0)
  • Improve the namespacing selected by rustc used for gencode types in errors. (ce2eb73)
  • Fully qualify scalar types in Kotlin/Native proto generator. (adc8d22)
  • Change _opt() accessors to return an std::Option instead of protobuf::Optional (6ced612)
  • Make Message's trait bounds much better for generic use (be1292f)
  • Support more chars in type URLs in the C++ text-format parser. (3a87c6c)
  • Validate Feature Support on Custom Options (34c1110)
  • Trait clarity effort: introduce Singular trait, for types which are allowed as simple fields (cdbfaf1)
  • Trait clarity improvement on Map traits (a8daa95) C++
  • Workaround for attribute handling bug in gcc < 13 (78dc67e)
  • Implement the Edition 2026 naming style enforcement feature. This will help prevent field name collisions. (ae0d964)
  • Add enum to enforce_naming_style feature to avoid field naming collisions which will be implemented in Edition 2026. (e4911a1)
  • Enhance ParseInfoTree to provide location of names and values. (1cb4fdb)
  • Add integer overflow check to RepeatedPtrField::MergeFrom. (cb5fe97)
  • Adding sanity check for ListFields reflection call (555360e)
  • Introduce Arena::UniquePtr and Arena::Ptr as smart pointers to better manage (bb00218)
  • Bug fix for edition 2024 visibility checking. Visibility checking was not properly applied to service method input and output types. This is now applied properly and will error if method input/output types do not have visibility to those messages. (5a56dee)
  • Fixed data race in Python Free Threading by removing unnecessary SetHasBitForRepeated() call. (8c1a9a4)
  • Add support for bazel 9.x (#26201) (f08d703)
  • Add proto2::sort/stable_sort utilities that behave as the standard ones but are optimized for Protobuf containers. (252281f)
  • Add proto2::erase/erase_if utilities that behave as the standard ones but are optimized for Protobuf containers. (dc9fb35)
  • Extend Abseil flag support for enums to include std::vector. (bd42ac6)
  • Dropped support for Bazel 7. (1816758)
  • Add native Abseil flag support to protobuf message types. (ec42e19)
  • Support more chars in type URLs in the C++ text-format parser. (3a87c6c)
  • Stripping empty options (d5d6d4c)
  • Creating generic MaybeAddError helper function (4bcf773)
  • Validate Feature Support on Custom Options (34c1110)
  • Add bounds checks to UnsafeArenaExtractSubrange, ReleaseLast and SwapElements. (d124c2d)
  • Fix UTF-8 Validation of string extensions in C++ (0936f33)
  • Remove first implementation of protobuf out of bounds enforcement. (507f86b)
  • Add native Abseil flag support to protobuf enums. (a203388)
  • Improve EINTR handling for close in zero_copy_stream_impl.h (a904af9)
  • Add cc_proto_library for MessageSet in //src/google/protobuf/bridge (6d23e8e) Java
  • Add BytecodeClassName functions, matching helpers in the java GeneratorNames utility. (514aceb)
  • Add enum to enforce_naming_style feature to avoid field naming collisions which will be implemented in Edition 2026. (e4911a1)
  • Avoid toBigIntegerExact in JsonFormat to avoid degenerate parse behavior in the face of large exponents. (57093a8)
  • Dropped support for Bazel 7. (1816758)
  • Add native Abseil flag support to protobuf enums. (a203388) Csharp
  • Implement WriteDelimitedTo(BufferWriter) (#21325) (407f457)
  • Add an "include" directory containing WKTs for Google.Protobuf.Tools nuget package. (6029d17) Objective-C
  • ObjC: Block Roots from being created. (8274114)
  • Fix naming convention in c_function extension syntax (e3bee07)
  • Modify unit tests to use c_function extension syntax via ifdefs (e1f2f52) Rust
  • Mangle types named XyzView if there is any direct sibling named Xyz (63d6ef0)
  • Improve the namespacing selected by rustc used for gencode types in errors. (ce2eb73)
  • Allow ProtoStr to be used in const contexts. (7f7b974)
  • Make any &T impl AsView if T impl AsView (d787869)
  • Change _opt() accessors to return an std::Option instead of protobuf::Optional (6ced612)
  • Add some common methods to ProtoStr to make it more ergonomic to use without dropping down to &[u8] (f8daf2f)
  • Ffi_11: Define basic arithmetic operations and comparison with underlying type (74b6f3f)
  • Make Message's trait bounds much better for generic use (be1292f)
  • Remove ProxiedInMapValue alias, since it is superceded by MapValue (5bde6e8)
  • Add fn push_default(&mut self) -> SomeMsgMut<> fn for Repeated message type fields. (a3bf3ec)
  • Fix that f32 and f64 were incorrectly tagged as legal for MapKeys in RustProto. (ab3793e)
  • Trait clarity effort: introduce Singular trait, for types which are allowed as simple fields (cdbfaf1)
  • Trait clarity improvement on Map traits (a8daa95)
  • See also UPB changes below, which may affect Rust. Python
  • Fix Python text_format by adding an optional recursion depth limit (#26604) (8abff6b)
  • Fix data race in CMessage lazy initialization for Python freethreading. (28e4512)
  • Fixed data race in Python Free Threading by removing unnecessary SetHasBitForRepeated() call. (8c1a9a4)
  • Fix type annotation for FindAllExtensionNumbers() to be a list rather than the more general Iterator. (3edd615)
  • Add type hints to descriptor_database.py. (cbe6403)
  • Fixed a bug in msg.MergeFrom(msg2) in Python. (ab14c0f)
  • Fix NULL byte handling issue in Python Protobuf find symbols in pool (059dc7e)
  • Add support for bazel 9.x (#26201) (f08d703)
  • Add recursion guards for the following nested messages: (b4c3fec)
  • Protobuf Python UPB Free Threading support. (f10c1de)
  • Fix Any recursion depth bypass in Python json_format.ParseDict (#25239) (d2b0016)
  • Supports exporting int as int (ea78297) PHP
  • Fail writing files in protoc CLI if any file output path is relative. (3bf2b07) PHP C-Extension
  • Fix 1-byte stack overflow in PHP extension int64 formatting (#26530) (3f04505)
  • See also UPB changes below, which may affect PHP C-Extension. Ruby
  • Gracefully handle payloads >2GB. (918ad5b) Ruby C-Extension
  • Gracefully handle payloads >2GB. (918ad5b)
  • See also UPB changes below, which may affect Ruby C-Extension. UPB (Python/PHP/Ruby C-Extension)
  • Fixed two GCC-only issues around upb's generated extension registry.
  • Avoid theoretical overflow of uintptr_t in AddAllLinkedExtensions (e7785e0)
  • Test(proto): Add message to test oneof name conflict resolution (29476e1)
  • Add recursion guards for the following nested messages: (b4c3fec)

Installer type: zip

Architecture Scope Download SHA256
x86 Download 99FF33772CA055CD096782D05395BBCC4B6187CCE284D2A914FC3745D3ECB6B6
x64 Download D1CEDE9E308CC3EB072392AF1C02CCAE4BDD3D2F374EC2970DBD8CDFDAA91363

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 (21)

34.1
Architecture Scope Download SHA256
x86 Download 14F5696F6F1BA37E91488BE39B0EA59BB2230CDE266E63F6F65610B3C5F54550
x64 Download 6D7EBDC75E9C1F0026D4FB28F17EF1D0AAE77D36744D83A9E052D79BA493724F
34.0
Architecture Scope Download SHA256
x86 Download 89512676CE87D2A7ABCE535DF366D1EC3CC2A36BA551A12DF9158DB240E014AA
x64 Download 76DDEB5AE7A31C8F9F7759D3B843A4CADDA2150AC037AD0C1794665D6CF31FCE
33.5
Architecture Scope Download SHA256
x86 Download 6BF9A1D83289664CBBC9A95FC3889C971B9F028C0E6F617BA800BAC401C36BE1
x64 Download 7E3468CD1FBD1AE9361A5304D4AC28FBD593AA1A425B5464BD9D4DA5FCA224B4
33.4
Architecture Scope Download SHA256
x86 Download 5B7069E637D628171D62C3982B2D4F10EC2CCE7642E028B6FC4873BC19796B25
x64 Download 0B31BE019B9FE45A388E93BF1F16D70AFDF9CE5CAF958EA47892FBC868B5A1B3
33.3
Architecture Scope Download SHA256
x86 Download B45B084DE3F44FC0328E1547186ABEB4F5438FDB3C3EC5F26288CAD260034D39
x64 Download 1B845F9C78080033064509325E191670E09FBC74F966587F8E752557374D56AD
33.2
Architecture Scope Download SHA256
x86 Download BB76077C45A4254A65F06F746DDA9CD346D8B555AB1A25EBC55548829C06B4CE
x64 Download 376770CD4073BEB63DB56FDD339260EDB9957B3C4472E05A75F5F9EC8F98D8F5
33.1
Architecture Scope Download SHA256
x86 Download F52A79CE2A70D421F55BE880D3AF48D6B22865F2119DD63DF6423D1CE9027E31
x64 Download D7A207FB6EEC0E4B1B6613BE3B7D11905375B6FD1147A071116EB8E9F24AC53B
33.0
Architecture Scope Download SHA256
x86 Download 3941CC8AEB0E8F59F2143B65F594088F726BB857550DABAE5D0DEE3BF1392DD1
x64 Download 3742CD49C8B6BD78B6760540367EB0FF62FA70A1032E15DAFE131BFAF296986A
32.1
Architecture Scope Download SHA256
x86 Download BC91A9FBA925F025C06F152128BFB5D233CB1C75420D8877A5120F01DEF79898
x64 Download 69569CBC178CD5785ECB7D93569913110677EAFEB4B8F82970C361FAD4C7CD66
32.0
Architecture Scope Download SHA256
x86 Download 11B6D3662B179E277D8AF34A87700DC4ECB2B5695168AC65226798A2798AFD48
x64 Download 89C178E9F878CB6DD561F677688E1EB2E757CB9AC84AE30B64436BAC19646996
31.1
Architecture Scope Download SHA256
x86 Download 74C4E34A41C654934A1F4C7D5E3F831A7B216D867717CDF730F82E1E10C1D0E2
x64 Download 70381B116AB0D71CB6A5177D9B17C7C13415866603A0FD40D513DAFE32D56C35
31.0
Architecture Scope Download SHA256
x86 Download EC49AE24DB4DAA94C40E5AFCC047D309A61EE15F95451AD8E5C7A13FD3FDB9B7
x64 Download D7EDEE5D0D5D6786C92E77A4F511E4698A5AA922C6390B6D08C3A79935A651B0
30.2
Architecture Scope Download SHA256
x86 Download 5CAE95ACDF1690C0A24F187DBA7CBA25D8EE60085CC951A7D9274CFE0771D916
x64 Download 10F35DF7722A69DDE8EE92B4A16A4E1CC91CFCE82FBB4A371BD046DE139AA4A9
29.6
Architecture Scope Download SHA256
x86 Download 23A0E6E68CA31DC32B89C597DC88E78A7698B2565BA7495775CCC15DC4DD0A88
x64 Download 1EBD7C87BAFFB9F1C47169B640872BF5FB1E4408079C691AF527BE9561D8F6F7
29.3
Architecture Scope Download SHA256
x86 Download C7C8028C1C4D801C53602920F2C86892054086BD965B6B23A4BA95D211DCB1D4
x64 Download 57EA59E9F551AD8D71FFAA9B5CFBE0CA1F4E720972A1DB7EC2D12AB44BFF9383
29.1
Architecture Scope Download SHA256
x64 Download 7EA48225857FFC1224588C335C2B1AF9D78A18AF9D57C0528CCA3193E336E9CE
x86 Download 1105E0FA64459F0B1AF5EE4D5877DAB864F2E10D8AEB04618F2B69C6C3A6ED03
28.3
Architecture Scope Download SHA256
x64 Download ce64f49bdeddef49ce4bd313a8f59bcf92fcf67b5831efbf66170386d2e66948
x86 Download b08fe6fccf4313e2ccc6fd726dc855ee890533e247f4c543c987ffd980cfd5b2
27.1
Architecture Scope Download SHA256
x64 Download DA531C51CCD1290D8D34821F0CE4E219C7FBAA6F9825F5A3FB092A9D03FE6206
x86 Download 6263718FF96547B8392A079F6FDF02A4156F2E8D13CD51649A0D03FB7AFA2DE8
25.7
Architecture Scope Download SHA256
x86 Download 876271BBF157C9DA7596FC711449D5DF946A02CA56E9C485B54AAD908F64FFF7
x64 Download 6DAB7C408BCC2C6637BADB3B4BBD98C32BC04B527BCDB157139431ED2227B91B
25.4
Architecture Scope Download SHA256
x86 Download 0A3EE77411834D3C298042B31F025C150A322E2F067DAA1B1589C0F8B28A9A37
x64 Download 272E05C916A7C99C51B3DB61574639D4CB97F1A4A4880F62EB4BF72D0CC1C8A9
25.3
Architecture Scope Download SHA256
x64 Download D6B336B852726364313330631656B7F395DDE5B1141B169F5C4B8D43CDF01482
x86 Download B9E7F2488C24BB3F3D507E125A9944A44DDFB09F2DB6F84860319E6A7C75F137