/awesome-grpc

A curated list of useful resources for gRPC

Creative Commons Attribution 4.0 InternationalCC-BY-4.0

Awesome gRPC Awesome

A curated list of useful resources for gRPC

Contents

Documentation

Community

Official Libraries and Tools

Other

Tools

  • 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

  • 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

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.

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

Haskell

Erlang

Elixir

Elm

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

TypeScript

Scala

  • ScalaPB - Protocol Buffer Compiler for Scala

Dart

  • grpc-dart - Protocol Buffer Compiler for Dart

Resources

Tutorials

Videos

Slides

Examples

Miscellaneous

Protocol Buffers

Documentation

  • Website - Official website an documentation

Tools

Similar

  • 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.