For gRPC tooling and code generation for Go, the strongest matches are uber/prototool (Prototool is a comprehensive CLI toolkit for Protocol Buffers), grpc-ecosystem/grpc-gateway (grpc-ecosystem/grpc-gateway generates Go reverse-proxy servers and stubs from gRPC) and gogo/protobuf (gogo/protobuf is a full-featured Protocol Buffers compiler and code). cloudwego/kitex and bufbuild/buf round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore essential libraries and code generation utilities for building high-performance gRPC services in Go.
Prototool is a development toolkit for Protocol Buffers that provides a suite of tools for linting, formatting, and generating code from schema files. It functions as a system for managing the lifecycle of Protocol Buffer definitions through a command line interface. The toolkit distinguishes itself by providing a breaking change detector that compares different versions of definitions to identify wire or source incompatible changes. It also includes a gRPC client interface capable of invoking endpoints using JSON requests by dynamically compiling Protobuf definitions. The project covers bro
Prototool is a comprehensive CLI toolkit for Protocol Buffers that handles linting, formatting, and code generation, and includes a gRPC client with JSON-to-gRPC translation and breaking change detection, directly supporting Go gRPC service development and code generation.
This project is a REST-to-gRPC API gateway and JSON reverse proxy that translates RESTful HTTP requests into gRPC service calls. It functions as a protocol buffer proxy generator, providing the tools necessary to bridge JSON-based HTTP traffic with backend gRPC servers. The system distinguishes itself by automating the creation of reverse-proxy servers and stubs through protobuf-driven code generation. It also includes a dedicated OpenAPI specification generator that produces OpenAPI v2 and v3 documents from gRPC service definitions and annotations. The project covers a broad range of integr
grpc-ecosystem/grpc-gateway generates Go reverse-proxy servers and stubs from gRPC service definitions, making it a direct fit for gRPC tooling in Go, though it focuses on REST translation rather than covering every feature like standalone stub generation or testing utilities.
This project is a Protocol Buffers Go compiler and code generation framework that translates schema definitions into optimized Go structures and reflection-free serialization methods. It includes a gRPC service generator for producing client and server communication code and a serialization performance toolkit for generating automated benchmarks and test suites. The framework features a plugin-based system for transforming data definitions into source code with custom field mapping and struct tag injection. It allows for custom type mapping and struct type overriding to link data fields to sp
gogo/protobuf is a full-featured Protocol Buffers compiler and code generation framework for Go that directly handles Protobuf compilation, Go code generation, gRPC client/server stub generation, and includes serialization benchmarking and test utilities, making it a strong fit for gRPC service development in Go.
Kitex is a high-performance remote procedure call framework for building distributed microservices in Go. It provides a communication system compatible with gRPC and Protobuf standards and includes a suite of tools for microservices governance. The framework features proxyless service mesh integration, which allows it to manage network traffic and governance directly without adding sidecar proxy latency. It optimizes data throughput through a high-performance communication library that minimizes memory copies. The system covers a broad surface of distributed capabilities, including service d
Kitex is a Go RPC framework that is fully compatible with gRPC and Protobuf, providing a code generation tool, middleware/interceptor support, and high‑performance microservices capabilities—making it a comprehensive answer for gRPC service development in Go.
Buf is a toolchain for managing the full lifecycle of Protocol Buffers schemas. It provides a set of tools for schema governance, including linting to enforce style guides, a breaking change detector to ensure backward compatibility, and a system for producing language-specific source code via local or remote plugins. The project distinguishes itself through a remote schema registry that centralizes the hosting, versioning, and distribution of Protocol Buffers modules. This registry allows for server-side enforcement of governance policies, such as blocking updates that introduce backward-inc
Buf is a protobuf toolchain that manages schema lifecycle and generates Go code via plugins, covering compilation and stub generation for gRPC — a solid match for Go gRPC development, though it does not natively include REST translation or testing utilities.
grpc-go is a Go language implementation of the gRPC framework, providing a remote procedure call library for high-performance service communication. It uses the HTTP/2 protocol to execute functions on remote servers as if they were local methods and utilizes protobuf service bindings to generate type-safe client and server code. The project features a bidirectional streaming transport that supports asynchronous, full-duplex message streams between clients and servers. This networking layer allows for various communication patterns, including client-to-server and server-to-client streaming, to
grpc/grpc-go is the official Go implementation of the gRPC framework, providing the core library and a code generation plugin for building gRPC services; it directly covers Protobuf compilation, Go code generation, client/server stubs, and interceptors, but does not include built-in REST Gateway translation or dedicated testing utilities.
gRPC-Web is a JavaScript client library that enables browser applications to call gRPC services through an HTTP proxy, using Protocol Buffers for serialization. It provides a browser-based gRPC client that supports unary, server-streaming, and bidirectional streaming RPCs, along with a code generator that produces JavaScript and TypeScript client stubs from .proto service definitions. The library includes an interceptor framework for attaching cross-cutting logic like authentication and retries to client calls, and supports setting Unix timestamp deadlines on RPCs for server-side timeout enfo
This repository is a gRPC-Web JavaScript client library for browser apps, not a Go-focused tool or code generator for gRPC service development in Go — it compiles stubs for JavaScript/TypeScript, not Go.
grpcurl is a command-line interface and client tool for invoking gRPC methods and inspecting service definitions. It serves as a server debugger and reflection client, allowing users to call remote procedures and verify server responses from the terminal using JSON or protobuf formats. The tool distinguishes itself through the ability to discover available services and methods dynamically via a server reflection service or by loading local protobuf schema files. It can extract service descriptions from a server for local use and print specific schema symbol definitions. It covers a broad ran
grpcurl is a command-line client for inspecting and invoking gRPC services, useful for debugging and testing, but it does not provide Protobuf compilation, code generation, or stub generation, which are the core development tools you are looking for.
go-grpc-middleware is a gRPC middleware framework for Go designed to handle cross-cutting concerns, reliability, and observability. It provides a collection of interceptors that can be used to modify inbound and outbound calls to enforce system-wide policies. The framework distinguishes itself through specialized toolkits for service reliability, including automatic retry logic for failed client calls and panic recovery mechanisms that translate runtime crashes into standard error responses. It also features an observability suite for collecting performance metrics and recording request activ
This is a gRPC middleware library for Go providing interceptors for authentication, retries, logging, and observability, but it does not handle Protobuf compilation, code generation, or REST translation, so it addresses only the interceptor/middleware aspect of the request rather than the full code-generation tooling.
grpcui is a browser-based interactive web interface and API client for executing remote procedure calls to gRPC servers. It functions as an HTTP to gRPC gateway that translates JSON payloads into binary protobuf messages, allowing users to trigger network requests and inspect responses through a visual web interface. The tool provides schema browsing and discovery capabilities by querying server reflection or loading local protobuf descriptor files to identify available services and method signatures. It uses these definitions to automatically generate dynamic input forms for constructing req
grpcui is a browser-based interactive client for testing gRPC services, but it does not generate Go code from Protocol Buffers or produce client/server stubs, which is the core of your search for gRPC tooling and code generation.
BloomRPC is a graphical user interface client for discovering, testing, and querying gRPC service endpoints. It functions as an API tester that allows for sending requests and validating responses through a visual interface without the need to write manual client code. The tool supports service discovery via the gRPC reflection API or by parsing protobuf definition files to generate request and response structures. It translates human-readable JSON input into binary protobuf format and utilizes an HTTP/2 transport layer to communicate with backend services. The application provides capabilit
BloomRPC is a graphical gRPC client for testing endpoints, but it does not generate Go code, compile Protocol Buffers, or provide the development tooling and libraries the visitor needs for gRPC service development in Go.
Simplebank is a financial services backend application built with Go that manages bank accounts and transfers. It utilizes a dual-protocol interface, providing both gRPC and REST APIs via Protocol Buffers to support different client communication requirements. The system implements a PostgreSQL data layer with versioned schema migrations and type-safe query generation. It handles financial operations through atomic fund transfers and balance change tracking to maintain consistent audit trails. The architecture includes an asynchronous task worker system using a message queue to offload long-
Simplebank is a complete backend application that uses gRPC and Protocol Buffers, not a reusable tool or library for generating gRPC code—it demonstrates the technology rather than providing development assistance.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| uber/prototool | 5K | Go | MIT | |
| grpc-ecosystem/grpc-gateway | 19.9K | Go | BSD-3-Clause | |
| gogo/protobuf | 5.7K | Go | NOASSERTION | |
| cloudwego/kitex | 8K | Go | Apache-2.0 | |
| bufbuild/buf | 11.2K | Go | Apache-2.0 | |
| grpc/grpc-go | 23K | Go | Apache-2.0 | |
| grpc/grpc-web | 9.2K | JavaScript | Apache-2.0 | |
| fullstorydev/grpcurl | 12.7K | Go | MIT | |
| grpc-ecosystem/go-grpc-middleware | 6.7K | Go | Apache-2.0 | |
| fullstorydev/grpcui | 5.9K | JavaScript | MIT |