A curated list of useful resources for gRPC
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
LICENSE set LICENSE to be CC-BY-4 raw plaintext Mar 21, 2018
code-of-conduct.md initial commit Sep 15, 2017
contributing.md fixes Sep 15, 2017
readme.md Remove duplicate protoc-gen-cobra Nov 9, 2018

readme.md

Awesome gRPC Awesome

A curated list of useful resources for gRPC

Contents

Documentation

Community

Official Libraries and Tools

Other

Tools

  • polyglot - A gRPC command line client written in Java
  • 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
  • docker-protoc - Dockerized protoc, grpc-gateway, and grpc_cli commands bundled with Google API libraries
  • ghz - Simple gRPC benchmarking and load testing tool inspired by hey and grpcurl
  • 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

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
  • 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
  • clay - Minimal server platform for gRPС+REST+Swagger APIs
  • grpc-consul-resolver - Easy to use endpoints resolver for the services registered in the Consul

Node.js

  • 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 wraps create-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.
  • grpc-dynamic-gateway - Like grpc-gateway, but written in node and dynamic.
  • node-protoc-plugin - Create protoc code-generation plugins easily in nodejs.
  • grpc-promise - GRPC promisify module for all Request/Response types: standard and stream

Java

  • 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

Ruby

  • gruf - gRPC Ruby Framework

Python

  • grpclib - Pure-Python gRPC implementation, based on hyper-h2 project

C#

  • MagicOnion - gRPC based HTTP/2 RPC Streaming Framework for .NET, .NET Core and Unity

Rust

  • grpc-rs - The gRPC library for Rust built on C Core library and futures
  • grpc-rust - Rust implementation of gRPC
  • tower-grpc - A client and server gRPC implementation based on Tower

Haskell

Erlang

Elixir

Elm

  • elm-protobuf - Protoc plugin generating elm code from proto definitions

TypeScript

Scala

  • ScalaPB - Protocol Buffer Compiler for Scala
  • Akka-gRPC - Akka gRPC provides support for building streaming gRPC servers and clients on top of Akka Streams.

Dart

  • grpc-dart - Protocol Buffer Compiler for Dart

Resources

Tutorials

Videos

Slides

Examples

Miscellaneous

Protocol Buffers

Documentation

  • Website - Official website an documentation

Tools

  • 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
  • prototool - Compile, lint, and format Protobuf files, and generate stubs for any lanuguage/plugin, along with Vim/IDE integration
  • protoc-gen-validate - Protoc plugin to generate polyglot message validators
  • go-proto-validators - Generate message validators from .proto annotations, used in grpc_validator Go gRPC middleware.
  • protolock - Protocol Buffer companion tool to protoc and git. Track your .proto files and prevent changes to messages and services which impact API compatibilty.

Similar

  • gogoprotobuf - Fork of golang/protobuf with extra code generation features
  • 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

Contribute

Contributions welcome! Read the contribution guidelines first.

License

CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.