Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ proto Public
forked from emicklei/proto

parser for Google ProtocolBuffers definition

License

Notifications You must be signed in to change notification settings

Keyon11/proto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

200 Commits

Repository files navigation

proto

Build Status Go Report Card GoDoc

Package in Go for parsing Google Protocol Buffers [.proto files version 2 + 3] (https://developers.google.com/protocol-buffers/docs/reference/proto3-spec)

install

go get -u -v github.com/emicklei/proto

usage

package main
import (
	"fmt"
	"os"
	"github.com/emicklei/proto"
)
func main() {
	reader, _ := os.Open("test.proto")
	defer reader.Close()
	parser := proto.NewParser(reader)
	definition, _ := parser.Parse()
	proto.Walk(definition,
		proto.WithService(handleService),
		proto.WithMessage(handleMessage))
}
func handleService(s *proto.Service) {
	fmt.Println(s.Name)
}
func handleMessage(m *proto.Message) {
	fmt.Println(m.Name)
}

validation

Current parser implementation is not completely validating .proto definitions. In many but not all cases, the parser will report syntax errors when reading unexpected charaters or tokens. Use some linting tools (e.g. https://github.com/uber/prototool) or protoc for full validation.

contributions

See proto-contrib for other contributions on top of this package such as protofmt, proto2xsd and proto2gql. protobuf2map is a small package for inspecting serialized protobuf messages using its .proto definition.

© 2017, ernestmicklei.com. MIT License. Contributions welcome.

About

parser for Google ProtocolBuffers definition

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 98.9%
  • Makefile 1.1%

AltStyle によって変換されたページ (->オリジナル) /