github.com/golang/protobuf
v1.5.1
#404 most downloaded on Go modules
golang/protobuf
What this package is like to depend on
Last release 2 years ago
no release in 18 months
Ships unpredictably
gaps range from 9 days to 2.5 years
Some releases are documented
notes for 7 of 15 stable releases
11 versions withdrawn
withdrawn after publishing
16 years old
556 releases · first in 2010
0 releases in the last 12 months
see the full history below
Release timeline
556 releases · Mar 2010 to Mar 2024Releases
latest 60 of 556-
v4.0.0-20161109072736-4bd1920723d7+incompatible09 Nov 2016 pre-releaseNothing published for this version
-
v1.5.406 Mar 2024 withdrawnModule deprecated: Use the "google.golang.org/protobuf" module instead.
-
v1.5.4-0.20240306064540-75de7c059e3606 Mar 2024 pre-release withdrawnModule deprecated: Use the "google.golang.org/protobuf" module instead.
Nothing published for this version
-
v1.5.4-0.20240305220410-b7697bb698b105 Mar 2024 pre-release withdrawnModule deprecated: Use the "google.golang.org/protobuf" module instead.
Nothing published for this version
-
v1.5.316 Sep 2021 withdrawnModule deprecated: Use the "google.golang.org/protobuf" module instead.
Release notes
Open source →Notable changes
*( #1363) jsonpb: accept 'null' as a valid representation of NullValue in unmarshal
-
v1.5.3-0.20210916003710-5d5e8c018a1316 Sep 2021 pre-release withdrawnModule deprecated: Use the "google.golang.org/protobuf" module instead.
Nothing published for this version
-
v1.5.3-0.20210915232859-37828f96226215 Sep 2021 pre-release withdrawnModule deprecated: Use the "google.golang.org/protobuf" module instead.
Nothing published for this version
-
v1.5.229 Mar 2021 withdrawnModule deprecated: Use the "google.golang.org/protobuf" module instead.
-
v1.5.2-0.20210324184403-af940030a2b724 Mar 2021 pre-releaseNothing published for this version
-
v1.5.118 Mar 2021Release notes
Open source →Notable changes:
- (#1293) all: depend on google.golang.org/[email protected]
-
v1.5.018 Mar 2021Release notes
Open source →Overview
This marks the
ptypespackage as deprecated and upgrades the dependency ongoogle.golang.org/protobufto a pre-release version of v1.26.0. A subsequent patch release will update the dependency to v1.26.0 proper.Notable changes
-
v1.4.4-0.20210303173643-78b1f09b431003 Mar 2021 pre-releaseNothing published for this version
-
v1.4.4-0.20210303013846-acacf8158c9a03 Mar 2021 pre-releaseNothing published for this version
-
v1.4.4-0.20210303013502-eccd77d6ffe303 Mar 2021 pre-releaseNothing published for this version
-
v1.4.315 Oct 2020 -
v1.4.3-0.20200925005537-91c84e0db17825 Sep 2020 pre-releaseNothing published for this version
-
v1.4.3-0.20200924210511-3860b2764ff224 Sep 2020 pre-releaseNothing published for this version
-
v1.4.214 May 2020Release notes
Open source →Notable changes:
- (#1131) all: upgrade to google.golang.org/[email protected]
- (#1125) jsonpb: fix a confusing error message
- (#1129) proto: make InternalMessageInfo functional
-
v1.4.2-0.20200514195940-07c14f10892114 May 2020 pre-releaseNothing published for this version
-
v1.4.2-0.20200511230548-00998c7dd9d711 May 2020 pre-releaseNothing published for this version
-
v1.4.104 May 2020Release notes
Open source →Notable changes:
- (#1114) all: upgrade to google.golang.org/[email protected]
- (#1113) protoc-gen-go/grpc: make identical to v1.3.5
-
v1.4.1-0.20200514035651-f183159caab114 May 2020 pre-releaseNothing published for this version
-
v1.4.1-0.20200504191445-b5de78c91d0d04 May 2020 pre-releaseNothing published for this version
-
v1.4.1-0.20200504190749-8d9af285403e04 May 2020 pre-releaseNothing published for this version
-
v1.4.1-0.20200419202630-fa093f59480c19 Apr 2020 pre-releaseNothing published for this version
-
v1.4.013 Apr 2020Release notes
Open source →Overview
This release of the
github.com/golang/protobufmodule introduces a number of significant changes relative to the previous minor release. In particular, this module is now implemented in terms of the newgoogle.golang.org/protobufmodule, which is the next major revision of Go bindings for protocol buffers. From this point onwards, most of the development effort for Go protobufs will be dedicated to the new module, with minimal changes being made to this module.See the release notes for the new module for specific implementation details that may affect this release.
Backwards compatibility
This release maintains backwards compatibility with previous releases of this module. Any observable changes in behavior are to fix bugs, change unspecified behavior, or to make behavior more compliant with the protobuf specification. The compatibility document provides us the freedom to make changes in these areas.
Notable changes
Wire serialization
Wire serialization is now implemented in terms of the new
protopackage by calling out to the relevant functionality in that package (e.g.,proto.Marshalandproto.Unmarshal). There should be no observable changes in behavior other what is mentioned elsewhere in the release notes (e.g., behavior around errors or nil values).JSON and text serialization
The JSON and text format implementations have been ported to use protobuf reflection under the hood instead of relying on Go reflection. This provides flexibility as they can operate on any concrete message type that properly implements the new
proto.Messageinterface.The implementations do not use the new
protojsonorprototextpackages in order to maintain a higher degree of backwards compatibility. Our analysis unfortunately showed us that too many tests rely on their output being stable by performing byte-for-byte comparisons. Even though the compatibility promise gives us the freedom to change the output, we have chosen not to do so for pragmatic reasons. The implementations are now functionally frozen (bugs and all) and will not receive future improvements. Users are encouraged to migrate to theprotojsonorprototextpackages instead.Well-known types
The well-known types declared under
ptypesare moved to thegoogle.golang.org/protobufmodule. The packages continue to exist, but all declarations forward to ones in the new module.For a period of time, it is expected that the
protoc-gen-goplugin continues to generate code with dependencies on the well-known types in this module. The import paths for the well-known types are determined by thego_packageoption specified in the.protofiles. Since these files are managed by the main protocol buffers project, it will require a new release of the protobuf toolchain before the new import paths take effect. Depending on this module’s packages for well-known types is fine since they simply forward over to the new packages.While
descriptorandpluginare not packages for well-known types, they too have also been moved to the new module.Types registry
In order for dynamic usages of protobufs to operate correctly, there must be a unified registry between this module and the new
google.golang.org/protobufmodule. Theprotoregistrypackage is the primary registry for all protobuf files that are linked into a Go program. The registration functions (e.g.,proto.RegisterType) in this package forward to the global registries in that module, and the lookup functions (e.g.,proto.MessageType) in this package source from the global registries in that module.Nil values
Use of the
google.golang.org/protobufmodule for the underlying implementation means that semantics for nil values may have changed. See that module’s release notes for details.Errors
A consequence of using the
google.golang.org/protobufmodule as the underlying implementation means that the text for some errors may change in trivial ways. This may break brittle tests depending on the error message. See that module’s release notes for details.Generated code
The
protoc-gen-goplugin in this module is now a thin wrapper over theprotoc-gen-goplugin in thegoogle.golang.org/protobufmodule. As a result, there are many changes to the generated code. See that module’s release notes for details. Users should migrate to use the newprotoc-gen-goplugin instead of the old one. Code generated by either plugin should be compatible with either module.For backward compatibility purposes, the
protoc-gen-goplugin in this module continues to support generation of gRPC bindings, while theprotoc-gen-goplugin in the new module does not.Upcoming breakage changes
Per the compatibility agreement for Go protobufs, we promise to make announcements about deliberate or potentially breaking changes 6 months in advance.
None of these changes are effective yet in this release.
Deprecation of
DescriptormethodsThe
Descriptormethods on generated messages are deprecated and may be removed in the future.The
descriptor.Messagetype is deprecated as fewer and fewer message types in the future will implement thedescriptor.Messageinterface. Existing usages should migrate to the newproto.Messageinterface.The
descriptor.ForMessagefunction is also deprecated. Users should migrate the code to use protobuf reflection to access descriptor information.Removal of
generatorpackageThe
generatorpackage is an internal implementation detail ofprotoc-gen-goand existed before the internal package mechanism. It has long been exempt from the compatibility promise. A future release of this module will remove the package. Existing users must migrate to the newcompiler/protogenpackage, which is a stable API for implementing protoc plugins, or fork the existinggeneratorpackage.Similarly, the
grpcpackage is also an internal implementation detail ofprotoc-gen-goand will also be deleted in a future release of this module. -
v1.4.0-rc.4.0.20200413173358-e9dc0d72c1a313 Apr 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.4.0.20200320220005-3a3cefd0f2bd20 Mar 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.4.0.20200313231945-b860323f09d013 Mar 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.409 Mar 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.3.0.20200309202152-7bd8073ff04a09 Mar 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.302 Mar 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.2.0.20200302194753-3f90b7282e8502 Mar 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.228 Feb 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.1.0.20200228231922-a3619c1acae228 Feb 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.1.0.20200225210334-b1b17f0eadee25 Feb 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.1.0.20200225102624-d8aac26686d225 Feb 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.1.0.20200224233058-1a45e6b3bbe824 Feb 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.1.0.20200221234624-67d41d38c20821 Feb 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.1.0.20200221233550-c45dae45a67521 Feb 2020 pre-releaseNothing published for this version
-
v1.4.0-rc.112 Feb 2020 pre-releaseNothing published for this version
-
v1.3.512 Mar 2020 -
v1.3.5-0.20240306064540-75de7c059e3606 Mar 2024 pre-release withdrawnModule deprecated: Use the "google.golang.org/protobuf" module instead.
Nothing published for this version
-
v1.3.426 Feb 2020Nothing published for this version
-
v1.3.328 Jan 2020Nothing published for this version
-
v1.3.3-0.20201015061829-4846b58453b315 Oct 2020 pre-releaseNothing published for this version
-
v1.3.3-0.20200128181022-d23c5127dc2428 Jan 2020 pre-releaseNothing published for this version
-
v1.3.3-0.20200112012737-4e55bbcbfaa112 Jan 2020 pre-releaseNothing published for this version
-
v1.3.3-0.20191022195553-ed6926b37a6322 Oct 2019 pre-releaseNothing published for this version
-
v1.3.3-0.20190920234318-1680a479a2cf20 Sep 2019 pre-releaseNothing published for this version
-
v1.3.3-0.20190827175835-822fe56949f527 Aug 2019 pre-releaseNothing published for this version
-
v1.3.3-0.20190805180045-4c88cc3f1a3405 Aug 2019 pre-releaseNothing published for this version
-
v1.3.201 Jul 2019Nothing published for this version
-
v1.3.2-0.20191022195553-ed6926b37a6322 Oct 2019 pre-releaseNothing published for this version
-
v1.3.2-0.20190920234318-1680a479a2cf20 Sep 2019 pre-releaseNothing published for this version
-
v1.3.2-0.20190701182201-6c65a5562fc001 Jul 2019 pre-releaseNothing published for this version
-
v1.3.2-0.20190517061210-b285ee9cfc6c17 May 2019 pre-releaseNothing published for this version
-
v1.3.2-0.20190409050943-e91709a02e0e09 Apr 2019 pre-releaseNothing published for this version
-
v1.3.2-0.20190318194812-d3c38a4eb49718 Mar 2019 pre-releaseNothing published for this version
-
v1.3.2-0.20190316015151-b85cd75de73416 Mar 2019 pre-releaseNothing published for this version