Go support for Google's protocol buffers
Go to file
Damien Neil 71c6603a26 protogen: use full filename in per-file vars
For a file "foo/bar.proto", put the FileDescriptor in "ProtoFile_foo_bar"
rather than "Bar_fileDescriptor".

Avoid name clashes when a package contains "a/foo.proto" and "b/foo.proto".

Don't camelcase the filename: These vars weren't fully camelcased to begin
with, and leaving the filename relatively unchanged is clearer and more
predictable.

Move "ProtoFile" from the end of the var name to the start, so that vars
will sort better in packages with multiple descriptors.

These changes do add a chance of name collision when the input filename
begins with an uppercase letter: Foo.proto becomes "ProtoFile_Foo", which
could be the result of camelcasing "proto_file.foo". The readability
benefits seem worth it.

Change-Id: If27d3a0d7b5bf3535aa1607a8579eb057c74d2dc
Reviewed-on: https://go-review.googlesource.com/c/163199
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
Reviewed-by: Herbie Ong <herbie@google.com>
2019-02-21 22:37:58 +00:00
cmd protogen: use full filename in per-file vars 2019-02-21 22:37:58 +00:00
encoding protogen: use full filename in per-file vars 2019-02-21 22:37:58 +00:00
internal protogen: use full filename in per-file vars 2019-02-21 22:37:58 +00:00
proto reflect: switch MessageType.New to return Message 2019-01-09 20:29:29 +00:00
protogen protogen: use full filename in per-file vars 2019-02-21 22:37:58 +00:00
reflect protogen: use full filename in per-file vars 2019-02-21 22:37:58 +00:00
runtime internal/fileinit: generate reflect data structures from raw descriptors 2019-01-30 01:33:46 +00:00
types protogen: use full filename in per-file vars 2019-02-21 22:37:58 +00:00
.gitignore cmd/protoc-gen-go-grpc: add gRPC code generator 2018-09-27 19:32:34 +00:00
.travis.yml test.bash: use repo-local cache 2018-09-06 19:58:40 +00:00
AUTHORS AUTHORS, CONTRIBUTORS, LICENSE, PATENTS: initial commit 2018-08-07 22:39:48 +00:00
CONTRIBUTING.md CONTRIBUTING.md: add pre-push hook instructions 2018-08-07 23:58:41 +00:00
CONTRIBUTORS AUTHORS, CONTRIBUTORS, LICENSE, PATENTS: initial commit 2018-08-07 22:39:48 +00:00
go.mod cmd/protoc-gen-go: generate descriptor and plugin with reflection 2018-12-06 17:47:27 +00:00
go.sum go.sum: update to fix test.bash failure 2019-01-28 22:30:47 +00:00
LICENSE AUTHORS, CONTRIBUTORS, LICENSE, PATENTS: initial commit 2018-08-07 22:39:48 +00:00
PATENTS AUTHORS, CONTRIBUTORS, LICENSE, PATENTS: initial commit 2018-08-07 22:39:48 +00:00
README.md CONTRIBUTING.md: initial commit 2018-08-01 20:39:06 +00:00
regenerate.bash encoding/textpb: move test protos under encoding/testprotos 2019-02-14 01:03:44 +00:00
test.bash test.bash update to go1.10.7 and go1.11.4 2019-01-03 18:52:18 +00:00

Next Generation Go Protocol Buffers

WARNING: This repository is in active development. There are no guarantees about API stability. Breaking changes will occur until a stable release is made and announced.

This repository is for the development of the next major Go implementation of protocol buffers. This library makes breaking API changes relative to the existing Go protobuf library. Of particular note, this API aims to make protobuf reflection a first-class feature of the API and implements the protobuf ecosystem in terms of reflection.

Design Documents

List of relevant design documents:

Contributing

We appreciate community contributions. See CONTRIBUTING.md.

Reporting Issues

Issues regarding the new API can be filed at github.com/golang/protobuf. Please use a APIv2: prefix in the title to make it clear that the issue is regarding the new API work.