A curated list of useful resources for gRPC
- 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
- Community links - Mailing list, Gitter, Twitter, Reddit
- gRPC Core - C, C++, Ruby, Node.js, Python, PHP, C#, Objective-C
- gRPC Java - The Java gRPC implementation. HTTP/2 based RPC
- 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 Web - gRPC for Web Clients
- gRPC Ecosystem - gRPC Ecosystem that complements gRPC
- gRPC contrib - Known useful contributions around github
- Homebrew gRPC - gRPC formulae repo for Homebrew
- grpc_cli - gRPC CLI tool
- letmegrpc - Generate a web form gui from a grpc specification
- grpcc - Node.js grpc command-line client
- gcall - Simple Node.js gRPC command line interface
- kafka-pixy - gRPC/REST proxy for Kafka
- ratelimit - Go/gRPC service designed to enable generic rate limit scenarios from different types of applications
- omgRPC - A GUI client for interacting with gRPC services, similar to what Postman is for REST APIs
- ProfaneDB - A Protocol Buffers database with gRPC API, built in C++ on top of RocksDB
- Evans - more expressive universal gRPC (CLI) client
- grpcurl - Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers
- danby - A grpc proxy for the browser
- 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
- 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
- promgrpc - Prometheus instrumentation for gRPC based services
- protoreflect - Reflection (Rich Descriptors) for Go Protocol Buffers
- grpchan - Channels for gRPC: custom transports, such as in-process and HTTP 1.1
- Mali - A minimalistic gRPC microservice framework for Node.js
- Condor Framework - Framework for building gRPC services in Node JS
- grpc-caller - An improved Node.js gRPC client
- grpc-create-metadata - Helper utility for creating gRPC
Metadata
- grpc-create-error - Utility function for creating
Errors
for gRPC responses - grpc-error -
GRPCError
class that wrapscreate-grpc-error
- grpc-inspect - gRPC protocol buffer inspection utility
- Node.js Proto Files - All of the Google API's protocol buffer files
- grpc-bus - Call gRPC services (even streams!) from the browser over any two-way socket to Node and soon Go
- grpc-errors - A quick and easy way of generating errors for use with grpc
- grpc-client-promise - Grpc-promise also support Promise API. Which works very well with ES7 async await.
- gax-java - Google API Extensions for Java
- Armeria - Asynchronous RPC/REST library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC
- grpc-spring-boot-starter - Spring Boot starter module for gRPC framework
- reactive-grpc - Integrates reactive programming with grpc-java
- grpc-java-contrib - Useful extensions for the grpc-java library
- rejoiner - Generates a GraphQL schema from gRPC microservices
- gruf - gRPC Ruby Framework
- grpclib - Pure-Python gRPC implementation, based on hyper-h2 project
- MagicOnion - gRPC based HTTP/2 RPC Streaming Framework for .NET, .NET Core and Unity
- grpc-rs - The gRPC library for Rust built on C Core library and futures
- grpc-rust - Rust implementation of gRPC
- grpc-haskell - gRPC library binding for Haskell
- Erlang grpc - Erlang library for gRPC
- grpc-elixir - The Elixir implementation of gRPC
- elm-protobuf - Protoc plugin generating elm code from proto definitions
- ts-protoc-gen - Protoc Plugin for TypeScript Declarations
- ScalaPB - Protocol Buffer Compiler for Scala
- grpc-dart - Protocol Buffer Compiler for Dart
- Building a gRPC service with Node.js - Google Clound Platform Codelab
- Getting Started with Microservices using Go, gRPC and Kubernetes
- gRPC in Production
- gRPC Go: Beyond the basics - GopherAcademy article
- Building High Performance APIs In Go Using gRPC - Small tutorial on building a simple API using gRPC and Go
- Bidirectional gRPC streaming for Go
- How We Build gRPC Services At Namely - Blog article from Namely Labs
- Our experience designing and building gRPC services - Blog series from Bugsnag on building a new Releases dashboard backend using gRPC
- gRPC: Google's high-performance, open-source RPC framework - GothamGo 2015 by Sameer Ajmani
- Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 first - Devoxx by Mete Atamel
- gRPC: The Story of Microservices at Square - Apigee webcast
- Scalable Realtime Microservices with Kubernetes and gRPC - Mark Mandel @ Google
- Text to Speech server with gRPC and Kubernetes - justforfunc #12
- GRPC Microservices 101 - Google Developer Group Washington by Ray Tsang
- Efficient Microservices w/ Binary Protocol - gRPC 101 - By Ray Tsang
- grpc: From Tutorial to Production - GopherCon 2017 by Alan Shreve
- Scalable Microservices with gRPC, Kubernetes, and Docker - Node Interactive 2016 by Sandeep Dinesh
- Building Microservices w/gRPC & Kubernetes - Philly ETE 2016 #49 by Kelsey Hightower
- Building high performance microservices with Kubernetes, Go, and gRPC - Google Cloud Next '17 by Andrew Jessup
- Modifying gRPC Services Over Time - Eric Anderson, Google at KubeCon + CloudNativeCon 2017 - Austin
- Next Generation Services at Indeed Using gRPC - Jaye Pitzeruse, Indeed.com at KubeCon + CloudNativeCon 2017 - Austin
- Generating Unified APIs with Protocol Buffers and gRPC - A video on Protocol Buffers, gRPC and Envoy from Lyft.
- Intro to gRPC: A Modern Toolkit for Microservice Communication - A video from Twilio's Signal Conference
- gRPC and Go: Developing Efficient and Type-Safe Services
- Best Practices for (Go) gRPC Services
- Creating GopherJS Apps with gRPC-Web - At FOSDEM
- justforfunc #31: gRPC Basics - JustForFunc: Programming in Go series Episode 31 covering gRPC
- gRPC Overview - An overview at gRPC: Talk at Slack by Varun Talwar
- gRPC Design and Implementation - April 2016 talk at Stanford by Varun Talwar
- gRPC - boilerplate to high-performance scalable APIs - code.talks 2015 by Robert Kubis
- HTTP2 and gRPC - A simple introduction about HTTP2 and gRPC by Xin Gong Chang
- gRPC and Microservices - Overview of Google's open source microservices framework - gRPC, based on HTTP2 and protocol buffers. Presented at Golang Melbourne, June 2016 by Jonathan Gomez
- gRPC and Microservices - Golang Melbourne - June 2016 Go Hack Night by Jonathan Gomez
- Scalable Microservices with gRPC, Kubernetes, and Containers - DevFest Ukraine
- OpenAPI and gRPC Side by-Side - APIStrat Conference - Tim Burks
- Go+Microservices at Mercari - Taichi Nakashima at Go Conference 2017
- gifinator - A sample application demonstrating Kubernetes, gRPC, Go and cute Gophers demoed at Google GCP Next 2017
- Text to Speech server with gRPC and Kubernetes - justforfunc #12
- Multiplayer Simon Says - A Game using gRPC and Kubernetes - Sample app with Go server and clients using Node.js (on Arduino and web), and Java (Android and CLI)
- Go Microservices Example - HTTP up front, Protobufs in the rear
- Streaming RPC's using gRPC - A quick demo of bi-directional streaming RPC's using grpc, Go and Python
- gRPC Java Demos - A collection of Java gRPC examples
- gRPC/OpenCensus Demo - Export metrics and traces from gRPC servers and clients using Java, Go and Prometheus
- go-micro-services - An demonstration of Golang micro-services that expose a HTTP/JSON frontend and then leverages gRPC for inter-service communication
- gRPC with Load Balancer or Proxy or on AWS - Various notes on doing gRPC behind a load balancer or proxy or on AWS
- gRPC service upgrade, versioning - A short possibly useful discussion on gRPC service upgrade and versioning
- Packaging Generated Code for gRPC Services - An article demonstrating a strategy on how to version and package gRPC libraries
- Website - Official website an documentation
- prototools - Documentation generator & other tools for protobuf/gRPC
- protoc-gen-doc - Documentation generator plugin for Google Protocol Buffers
- openapi2proto - A tool for generating Protobuf v3 schemas and gRPC service definitions from OpenAPI specifications
- Wireshark Protobuf Dissector - A Wireshark Lua plugin for decoding Google protobuf packets. Relevant PR and discussion.
- protoc-gen-lint - A plug-in for Google's Protocol Buffers (protobufs) compiler to lint .proto files for style violations
- MessagePack - It's like JSON, but fast and small
- Thrift - Thrift is an interface definition language and binary communication protocol
- TChannel - Network multiplexing and framing protocol for RPC
- Cap’n Proto - Think Protocol Buffers, except faster
- FlatBuffers - An efficient cross platform serialization library
- RSocket - Application protocol providing Reactive Streams semantics
- Twirp - A simple RPC framework with protobuf service definitions
- Greenpack - Serialization format similar to MessagePack, but adds field versioning and type annotation
Contributions welcome! Read the contribution guidelines first.
This work is licensed under a Creative Commons Attribution 4.0 International License.