Awesome gRPC
A curated list of useful resources for gRPC
Contents
- Documentation
- Community
- Official Libraries and Tools
- Tools
- Language-Specific
- Resources
- Protocol Buffers
- Similar
Documentation
- Website - Official documentation, libraries, resources, samples and FAQ
- Technical documentation - Collection of useful technical documentation
- gRPC status codes - Status codes and their use in gRPC
- gRPC status code mapping - HTTP to gRPC Status Code Mapping
- grpc-errors - Code examples in each language on how to return and handle error statuses.
- API Design Guide - Google Cloud API Design Guide useful for gRPC API design insights
Community
- Community links - Mailing list, Gitter, Twitter, Reddit
Official Libraries and Tools
- gRPC Core - C, C++, Ruby, Node.js, Python, PHP, C#, Objective-C
- gRPC Java - The Java gRPC implementation. HTTP/2 based RPC
- gRPC Kotlin - The Kotlin gRPC implementation. Based on gRPC Java
- gRPC Node.js - gRPC for Node.js
- gRPC Go - The Go language implementation of gRPC. HTTP/2 based RPC
- gRPC Swift - The Swift language implementation of gRPC
- gRPC Dart - The Dart language implementation of gRPC
- gRPC C# - The C# language implementation of gRPC
- gRPC Web - gRPC for Web Clients
- gRPC Ecosystem - gRPC Ecosystem that complements gRPC
- gRPC contrib - Known useful contributions around github
- grpc_cli - gRPC CLI tool
Tools
CLI
- polyglot - A gRPC command line client written in Java
- grpcc - Node.js grpc command-line client
- gcall - Simple Node.js gRPC command line interface
- Evans - more expressive universal gRPC (CLI) client
- grpcurl - Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers
- httpyac - a command line client for executing integration tests for all kinds of requests (gRPC, HTTP, MQTT, Websocket).
- protodot - Transforming your .proto files into .dot files (and .svg, .png if you happen to have graphviz installed)
- grpc-client-cli - interactive gRPC client
- proto2asciidoc - Generate AsciiDoc documentation from a .proto file
- proto-to-postman - Create postman API import collection from .proto files
- gWhisper - Client with interactive tab-completion (uses reflection) and human readable format
- grpcdebug - Debugs serving gRPC applications with tools like channel trace info, xDS config dump, and health checking
- sylk - A gRPC framework for building projects in Python, Typescript / NodeJS and Go from a simple CLI and powerful
Beta
UI platform - grpcmd - A simple, easy-to-use, and developer-friendly CLI tool for gRPC.
GUI
- Postman - Create, test, and debug gRPC services directly from Postman
- letmegrpc - Generate a web form gui from a grpc specification
- omgRPC (Deprecated) - A GUI client for interacting with gRPC services, similar to what Postman is for REST APIs
- grpcui - An interactive web UI for gRPC, along the lines of postman (also, a Go library for embedding these web UIs into Go HTTP servers)
- BloomRPC (Deprecated) - A nice and simple GUI Client. Exploring and interacting with gRPC and gRPC-web services has never been simpler, Inspired By GraphQL-Playground and Postman
- gRPCox - Like Postman, but for gRPC. web based GUI Client for gRPC, extremely easy to use.
- vscode-httpyac - A VSCode extension which supports sending all kinds of requests (gRPC, HTTP, MQTT, Websocket)
- Milkman - Extensible alternative to Postman for crafting all kinds of requests, not only for gRPC, also http, sql etc.
- MuninRPC - Protobuf request and response testing application under the gRPC system.
- Delivery - A simple electron app for gRPC that uses gRPCurl to autodetect all endpoints/methods and their request bodies, just modify the JSON body. Simplicity in mind.
- (Yodelay.io) - A browser GUI Making sure your outbound 🗣️ ‘yodelay’ returns the ‘IiiOoo’ 📣 that you expect.
- Wombat - A cross platform gRPC client. Auto-generates input fields from your proto files or the gRPC reflection API. Not another Electron app - built with Qt and Go.
- Kreya - A gRPC and gRPC-web client supporting environments, templating, authentication schemes and file based syncing.
- Plumber - Another one GUI for GRPC requests (reflection only)
- Fint - Create, run, manage performance tests and functional tests cases for gRPC service in a single (commercial) tool
- Protocall - A browser-based gRPC & protobuf API client. Integrates with Github and automatically resolves all proto imports with no manual configuration.
- Grip - Native macOS client for interacting with gRPC services
- ezy - 🔥 Fully-featured GUI client for gRPC/gRPC-Web.
- Warthog - A cross platform gRPC client. Input generation for all types, including nested and looped messages. Saving requests and servers.
- ptg - GUI gRPC client, it is also a performance testing tool.
Testing
- ghz - Simple gRPC benchmarking and load testing tool inspired by hey and grpcurl.
- gatling-grpc - A Gatling stress test plugin for gRPC.
- karate-grpc - Example of using Karate to integrate and test gRPC.
- strest-grpc - A load tester for stress testing grpc intermediaries.
- hazana - A Go package for creating load test tooling. Supports gRPC.
- fortio - A microservices (http, grpc) load testing library and tool from Istio project.
- grpc-swagger - Debugging gRPC application with swagger-ui.
- grpc-tools - A suite of gRPC debugging tools. Like Fiddler/Charles but for gRPC.
- jmeter-grpc-plugin - A plugin supports load test gRPC service with Jmeter.
- camouflage - Camouflage is a backend mocking tool for HTTP, gRPC and Websockets protocols.
- Mediator - Cross-platform GUI gRPC debugging proxy like charles but design for gRPC.
- grpc_bench - A suite of gRPC benchmarks for different technologies.
- grpcdump - Tool for capture and decode GRPC messages from ethernet traffic only for Linux
- nosymouse - Saas tool to functional, perfomance and secure testing gRPC
- Step CI - Open-Source API Testing and Monitoring (now with gRPC support!)
- Microcks - A Cloud Native Computing Sandbox project 🚀 dedicated to API Mocking and Testing (gRPC supported)
Other
- kafka-pixy - gRPC/REST proxy for Kafka
- grpc-proxy - gRPC reverse proxy with the goal of making it easy to expose gRPC services over the internet
- ratelimit - Go/gRPC service designed to enable generic rate limit scenarios from different types of applications
- ProfaneDB - A Protocol Buffers database with gRPC API, built in C++ on top of RocksDB
- danby - A grpc proxy for the browser
- docker-protoc - Dockerized protoc, grpc-gateway, and grpc_cli commands bundled with Google API libraries
- grpc-json-proxy - A proxy which allows existing tools like Postman or curl to interact with gRPC servers
- protoc-gen-gotemplate - Generic generator based on golang's template system
- grpc-http-proxy - A reverse proxy server which translate JSON HTTP requests to gRPC calls based on protoreflect
- grpc-mate - A dynamic proxy server that translates JSON HTTP requests into gRPC calls
- jawlb - An unsophisticated grpclb load balancer implementation for Kubernetes and gRPC
- protoc-gen-hbs - Fast and easy protobuf generation with handlebars and some helpers
- grpcson - An easy to use proxy which translates JSON HTTP requests to gRPC calls with web ui
- rk-grpc - Middleware and bootstrapper library for gRPC with logging, metrics, auth, tracing etc.
- PropaneDB - A Protocol Buffers database with gRPC API and Golang driver.
- APISIX - An api gateway that supports gRPC, HTTP(s) to gRPC and gRPC web request proxying.
- Zilla - An API gateway built for event-driven architectures and streaming that supports standard protocols such as HTTP, SSE, gRPC, MQTT and the native Kafka protocol.
- grpc-pentest-suite - A collection of tools for pentesting gRPC-Web, including a Burp Suite extension for manipulating gRPC-Web payloads.
Language-Specific
Go
- go-GRPC Micro - Micro based gRPC framework for microservices
- go-kit gRPC - Go Kit with gRPC as transport
- gRPC over NATS - nRPC is an RPC framework like gRPC, but for NATS.
- grpc-web - gRPC Web implementation for Golang and TypeScript
- grpc-web-devtools - Chrome Browser extension to aid gRPC-Web development
- rpcx - A RPC service framework based on net/rpc like alibaba Dubbo and weibo Motan
- grpclb - External Load Balancing Service solution for gRPC written in Go
- grpc-proxy - gRPC proxy is a Go reverse proxy that allows for rich routing of gRPC calls with minimum overhead
- go-microservice-helpers - A collection of handy snippets that simplify creation of gRPC servers and clients
- lile - Easily create gRPC services in Go
- proteus - Generate .proto files from Go source code
- protoc-gen-cobra - Command line tool generator for Go gRPC
- gRPC over WebSocket - connect to a gRPC Server behind a firewall by using a pre-established WebSocket connection
- yarpc - A message passing platform for Go, including support for gRPC