Go support for Google's protocol buffers
Go to file
Damien Neil 82a0306187 internal/{fileinit,impl}: minimal weak field support
Weak fields are an obsolete proto1 feature. They have been superseded
by extensions. However, some vestigial support for weak fields does
remain, mostly as Google-internal patches. (They aren't exciting;
extensions really do everything weak fields do in a cleaner and
more portable fashion.)

At the moment, the only visible impact of marking a field [weak=true]
is to exclude it from "internal/fileinit".FileBuilder.DependencyIndexes.
We want to preserve that behavior just in case we ever do add full weak
field support here.

Extend fileinit to look up message descriptors for weak fields in the
global registry. If the descriptor cannot be found, use a placeholder
instead.

Remove special-case handling of weak fields in the impl package. The
code generator doesn't do anything special for them, so they can be
treated as any other field.

Change-Id: Ifa2ee3d30d63680a0eeb59c66ebc9521f38fd660
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/175997
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
2019-05-08 17:24:54 +00:00
cmd reflect/protodesc: add validation for NewFile 2019-05-08 00:41:07 +00:00
encoding encoding: add TODOs for producing better error messages with handling of Any 2019-05-07 04:06:17 +00:00
internal internal/{fileinit,impl}: minimal weak field support 2019-05-08 17:24:54 +00:00
proto proto: add Equal 2019-04-29 23:34:17 +00:00
protogen reflect/protoreflect: rename methods with Type suffix 2019-04-20 06:35:24 +00:00
reflect reflect/protodesc: check file imports by name 2019-05-08 01:49:39 +00:00
runtime runtime/protoimpl: remove ExtensionFieldsV1 2019-04-16 23:53:07 +00:00
testing/prototest internal/{fileinit,impl}: minimal weak field support 2019-05-08 17:24:54 +00:00
types cmd/protoc-gen-go: used named types for special fields 2019-04-16 22:04:16 +00:00
.gitignore cmd/protoc-gen-go/testdata: ignore go.sum 2019-03-11 20:19:03 +00:00
.travis.yml .travis.yml: configure for OSX 2019-03-13 18:04:08 +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 reflect/protoreflect: remove methods with Type suffix 2019-04-20 08:14:13 +00:00
go.sum reflect/protoreflect: remove methods with Type suffix 2019-04-20 08:14:13 +00:00
integration_test.go internal/testprotos/conformance: make package name match dir 2019-05-02 18:46:11 +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 internal/cmd/generate-protos: generate test for testdata 2019-03-11 19:40:53 +00:00
test.bash internal/cmd/generate-protos: generate test for testdata 2019-03-11 19:40:53 +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.