All Projects → jhump → goprotoc

jhump / goprotoc

Licence: Apache-2.0 license
Library for writing protoc plugins in Go; also includes a pure-Go protoc replacement

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to goprotoc

protocell
Conjures up convenient OCaml types and serialization functions based on protobuf definition files
Stars: ✭ 18 (-75.34%)
Mutual labels:  protobuf, protocol-buffers, protoc-plugin
protoc-plugin
A protoc compiler plugin for Clojure applications
Stars: ✭ 28 (-61.64%)
Mutual labels:  protobuf, protocol-buffers, protoc-plugin
makego
Makefile setup for our Golang projects.
Stars: ✭ 65 (-10.96%)
Mutual labels:  protobuf, protocol-buffers
pronto
Clojure support for protocol buffers
Stars: ✭ 66 (-9.59%)
Mutual labels:  protobuf, protocol-buffers
ProtobufDecoder
A Google Protocol Buffers (Protobuf) payload decoder/analyzer
Stars: ✭ 33 (-54.79%)
Mutual labels:  protobuf, protocol-buffers
rules proto grpc
Bazel rules for building Protobuf and gRPC code and libraries from proto_library targets
Stars: ✭ 201 (+175.34%)
Mutual labels:  protobuf, protocol-buffers
protoc-gen-persist
GRPC SQL and Spanner persistence layer
Stars: ✭ 60 (-17.81%)
Mutual labels:  protobuf, protoc-plugin
protobuf-ts
Protobuf and RPC for TypeScript
Stars: ✭ 527 (+621.92%)
Mutual labels:  protobuf, protocol-buffers
Rules protobuf
Bazel rules for building protocol buffers and gRPC services (java, c++, go, ...)
Stars: ✭ 206 (+182.19%)
Mutual labels:  protobuf, protocol-buffers
protoconfig
ProtoConfig 1.0: Open Standard for using, defining, and consuming software configuration input in a unified way.
Stars: ✭ 24 (-67.12%)
Mutual labels:  protobuf, protocol-buffers
protobuf-ipc-example
Protocol buffer IPC example
Stars: ✭ 19 (-73.97%)
Mutual labels:  protobuf, protocol-buffers
Anakin
Codegeneration tool for isomorphic server and mobile Go apps with gRPC & Protobuf. Share code between your backend, Android & iOS app! 🌞
Stars: ✭ 17 (-76.71%)
Mutual labels:  protobuf, codegeneration
protokit
A starter kit for building protoc plugins. Rather than write your own, you can just use an existing one.
Stars: ✭ 69 (-5.48%)
Mutual labels:  protobuf, protoc-plugin
Protoman
Postman for protobuf APIs
Stars: ✭ 241 (+230.14%)
Mutual labels:  protobuf, protocol-buffers
j2cl-protobuf
Protocol Buffers implementation for J2CL
Stars: ✭ 23 (-68.49%)
Mutual labels:  protobuf, protocol-buffers
Protoc Gen Lint
A plug-in for Google's Protocol Buffers (protobufs) compiler to lint .proto files for style violations.
Stars: ✭ 221 (+202.74%)
Mutual labels:  protobuf, protocol-buffers
elm-protobuf
protobuf plugin for elm
Stars: ✭ 93 (+27.4%)
Mutual labels:  protobuf, protocol-buffers
stockholm
💵 Modern Python library for working with money and monetary amounts. Human friendly and flexible approach for development. 100% test coverage + built-in support for GraphQL and Protocol Buffers transports using current best-practices.
Stars: ✭ 26 (-64.38%)
Mutual labels:  protobuf, protocol-buffers
Go Grpc Examples
This repo contains examples and implementations of different types of GRPC services and APIs using Golang.
Stars: ✭ 180 (+146.58%)
Mutual labels:  protobuf, protocol-buffers
Protobuf Dynamic
Protocol Buffers Dynamic Schema - create protobuf schemas programmatically
Stars: ✭ 186 (+154.79%)
Mutual labels:  protobuf, protocol-buffers

Go-protoc

Build Status Go Report Card GoDoc

This repo makes it easy to work in the protobuf tool chain using Go.

Writing Plugins for protoc

First and foremost, the included plugins package makes it easy to implement protoc plugins in Go. It defines an interface that plugins implement as well as facilities to actually integrate with protoc (e.g. implementing the proper plugin protocol). It also provides "name resolution" logic: computing qualified names in Go source code for elements in proto descriptors. This makes it a snap to write plugins in Go that generate additional Go code from your proto sources.

Pure Go version of protoc

This repo also contains a pure-Go re-implementation of protoc. This new version of protoc, named goprotoc (of course!), will delegate to a protoc executable on the path, driving it as if it were a plugin, for generating C++, C#, Objective-C, Java, JavaScript, Python, PHP, and Ruby code (since they are implemented in protoc itself). But it provides descriptors to protoc, parsed by goprotoc, instead of having protoc re-parse all of the source code. And it can invoke any other plugins (such as protoc-gen-go) the same way that protoc would.

In addition to the goprotoc command, this repo provides a package that other Go programs can use as the entry-point to running Protocol Buffer code gen, without having to shell out to an external program.

Extras

You'll also find a protoc plugin named protoc-gen-gox that can be the entry point for generating Go code. It will delegate to protoc-gen-go for standard code gen and gRPC code gen, but it can also be configured to execute other plugins that emit additional Go code. It's sort of like a plugin multiplexer that supports a configuration file for enabling and configuring the various plugins that it invokes.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].