• Stars
    star
    9,463
  • Rank 3,563 (Top 0.08 %)
  • Language
    Go
  • License
    BSD 3-Clause "New...
  • Created over 9 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Go support for Google's protocol buffers

Go support for Protocol Buffers

GoDev Build Status

This module (github.com/golang/protobuf) contains Go bindings for protocol buffers.

It has been superseded by the google.golang.org/protobuf module, which contains an updated and simplified API, support for protobuf reflection, and many other improvements. We recommend that new code use the google.golang.org/protobuf module.

Versions v1.4 and later of github.com/golang/protobuf are implemented in terms of google.golang.org/protobuf. Programs which use both modules must use at least version v1.4 of this one.

See the developer guide for protocol buffers in Go for a general guide for how to get started using protobufs in Go.

See release note documentation for more information about individual releases of this project.

See documentation for the next major revision for more information about the purpose, usage, and history of this project.

Package index

Summary of the packages provided by this module:

  • proto: Package proto provides functions operating on protobuf messages such as cloning, merging, and checking equality, as well as binary serialization and text serialization.
  • jsonpb: Package jsonpb serializes protobuf messages as JSON.
  • ptypes: Package ptypes provides helper functionality for protobuf well-known types.
  • ptypes/any: Package any is the generated package for google/protobuf/any.proto.
  • ptypes/empty: Package empty is the generated package for google/protobuf/empty.proto.
  • ptypes/timestamp: Package timestamp is the generated package for google/protobuf/timestamp.proto.
  • ptypes/duration: Package duration is the generated package for google/protobuf/duration.proto.
  • ptypes/wrappers: Package wrappers is the generated package for google/protobuf/wrappers.proto.
  • ptypes/struct: Package structpb is the generated package for google/protobuf/struct.proto.
  • protoc-gen-go/descriptor: Package descriptor is the generated package for google/protobuf/descriptor.proto.
  • protoc-gen-go/plugin: Package plugin is the generated package for google/protobuf/compiler/plugin.proto.
  • protoc-gen-go: The protoc-gen-go binary is a protoc plugin to generate a Go protocol buffer package.

Reporting issues

The issue tracker for this project is located here.

Please report any issues with a sufficient description of the bug or feature request. Bug reports should ideally be accompanied by a minimal reproduction of the issue. Irreproducible bugs are difficult to diagnose and fix (and likely to be closed after some period of time). Bug reports must specify the version of the Go protocol buffer module and also the version of the protocol buffer toolchain being used.

Contributing

This project is open-source and accepts contributions. See the contribution guide for more information.

Compatibility

This module and the generated code are expected to be stable over time. However, we reserve the right to make breaking changes without notice for the following reasons:

  • Security: A security issue in the specification or implementation may come to light whose resolution requires breaking compatibility. We reserve the right to address such issues.
  • Unspecified behavior: There are some aspects of the protocol buffer specification that are undefined. Programs that depend on unspecified behavior may break in future releases.
  • Specification changes: It may become necessary to address an inconsistency, incompleteness, or change in the protocol buffer specification, which may affect the behavior of existing programs. We reserve the right to address such changes.
  • Bugs: If a package has a bug that violates correctness, a program depending on the buggy behavior may break if the bug is fixed. We reserve the right to fix such bugs.
  • Generated additions: We reserve the right to add new declarations to generated Go packages of .proto files. This includes declared constants, variables, functions, types, fields in structs, and methods on types. This may break attempts at injecting additional code on top of what is generated by protoc-gen-go. Such practice is not supported by this project.
  • Internal changes: We reserve the right to add, modify, and remove internal code, which includes all unexported declarations, the generator package, and all packages under internal.

Any breaking changes outside of these will be announced 6 months in advance to [email protected].

More Repositories

1

go

The Go programming language
Go
118,032
star
2

dep

Go dependency management tool experiment (deprecated)
Go
12,894
star
3

groupcache

groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases.
Go
12,622
star
4

mock

GoMock is a mocking framework for the Go programming language.
Go
9,199
star
5

tools

[mirror] Go Tools
Go
7,145
star
6

mobile

[mirror] Go on Mobile
Go
5,619
star
7

oauth2

Go OAuth2
Go
5,070
star
8

lint

[mirror] This is a linter for Go source code. (deprecated)
Go
3,978
star
9

vscode-go

Go extension for Visual Studio Code
TypeScript
3,673
star
10

glog

Leveled execution logs for Go
Go
3,498
star
11

proposal

Go Project Design Documents
Go
3,263
star
12

crypto

[mirror] Go supplementary cryptography libraries
Go
2,900
star
13

net

[mirror] Go supplementary network libraries
Go
2,781
star
14

example

Go example projects
Go
2,429
star
15

geo

S2 geometry library in Go
Go
1,622
star
16

tour

[mirror] A Tour of Go
Go
1,524
star
17

vgo

[mirror] Versioned Go Prototype
Go
1,523
star
18

snappy

The Snappy compression format in the Go programming language.
Go
1,463
star
19

sys

[mirror] Go packages for low-level interaction with the operating system
Go
1,229
star
20

leveldb

The LevelDB key-value database in the Go programming language.
Go
1,135
star
21

gddo

Go Doc Dot Org
Go
1,107
star
22

pkgsite

[mirror] Home of the pkg.go.dev website
Go
1,101
star
23

sync

[mirror] concurrency primitives
Go
830
star
24

gofrontend

Go compiler frontend (gccgo)
Go
823
star
25

exp

[mirror] Experimental and deprecated packages
Go
821
star
26

freetype

The Freetype font rasterizer in the Go programming language.
Go
758
star
27

text

[mirror] Go text processing support
Go
734
star
28

playground

[mirror] The Go Playground
Go
714
star
29

talks

Go talks
696
star
30

appengine

Go App Engine packages
Go
661
star
31

build

[mirror] Go's continuous build and release infrastructure (no stability promises)
Go
603
star
32

vulndb

[mirror] The Go Vulnerability Database
Go
535
star
33

image

[mirror] Go supplementary image libraries
Go
515
star
34

blog

[mirror] Go Blog (obsolete)
390
star
35

time

[mirror] Go supplementary time packages
Go
380
star
36

perf

[mirror] Performance measurement, storage, and analysis.
Go
363
star
37

website

[mirror] Home of the go.dev and golang.org websites
HTML
345
star
38

sublime-build

The official Sublime Text package for Go build system integration.
Python
341
star
39

vuln

[mirror] the database client and tools for the Go vulnerability database
Go
333
star
40

xerrors

Go
274
star
41

term

Go terminal and console support
Go
260
star
42

debug

[mirror] debugging tools
Go
225
star
43

mod

[mirror] Go module mechanics libraries
Go
183
star
44

dl

[mirror] go install golang.org/dl/go1.N@latest
Go
180
star
45

benchmarks

Benchmarks for the perf dashboard
Go
162
star
46

review

[mirror] Tool for working with Gerrit code reviews
Go
143
star
47

arch

[mirror] architecture code
Go
143
star
48

cwg

Community outreach Working Group
131
star
49

sublime-config

A library for Go environment configuration in Sublime Text
Python
84
star
50

govulncheck-action

[mirror] GitHub action for govulncheck
76
star
51

winstrap

Bootstrapping tools for windows builders
Go
48
star
52

scratch

[mirror] repository used for testing
Go
27
star
53

telemetry

[mirror] Go Telemetry services and libraries
Go
25
star
54

pkgsite-metrics

Code to serve pkg.go.dev/metrics [mirror]
Go
11
star
55

wiki

[mirror] Go Wiki
6
star
56

go-get-issue-15410

go-get-issue-15410
Go
3
star
57

.github

1
star
58

.allstar

1
star