Awesome Lists

awesome-grpc

by grpc-ecosystem

awesome listpushed almost 2 years ago

A curated list of useful resources for gRPC

AI summary

gRPC toolkit

A curated collection of resources and tools for building and using gRPC-based systems

stars
7.7K
forks
577
watching
175
awesome lists
2
entries
336
View on GitHub

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/grpc-ecosystem/awesome-grpc/links.svg)](https://awesome.facts.dev/awesome/grpc-ecosystem/awesome-grpc)
HTML
<a href="https://awesome.facts.dev/awesome/grpc-ecosystem/awesome-grpc"><img src="https://awesome.facts.dev/shield/grpc-ecosystem/awesome-grpc/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/grpc-ecosystem/awesome-grpc/links.svg

What's in the list

336 links in 34 sections, with live GitHub stats.activeno commit in 2y

Documentation

Community

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 , / and from a simple CLI and powerful UI platform

  • grpcmd

    A simple, easy-to-use, and developer-friendly CLI tool for gRPC

Tools / 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

  • Kalisto

    Automate and test intricate gRPC API workflows with ease using JavaScript-based scripting

Tools / Testing

  • ghz

    Simple gRPC benchmarking and load testing tool inspired by hey and grpcurl

  • gatling-grpc

    A stress test plugin for gRPC

  • karate-grpc

    Example of using 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 🚀 dedicated to API Mocking and Testing ( )

Tools / 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

  • sabledocs

    A simple static documentation generator for Protobuf and gRPC contracts

  • limitador

    Generic rate-limiter written in Rust exposing a gRPC service that implements the Envoy Rate Limit protocol (v3)

Language-Specific / Go

  • go-GRPC Micro

    based gRPC framework for microservices

  • go-kit gRPC

    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

  • 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

  • grpcui

    Embed a gRPC web UI into a Go gRPC/HTTP server

  • clay

    Minimal server platform for gRPС+REST+Swagger APIs

  • grpc-consul-resolver

    Easy to use endpoints resolver for the services registered in the

  • kuberesolver

    gRPC Load Balancer with Kubernetes resolver

  • ttrpc

    GRPC for low-memory environments

  • grapi

    😮 A surprisingly easy API server and generator in gRPC and Go

  • gripmock

    gRPC Mock Server

  • grpc-gateway-boilerplate

    All the boilerplate you need to get started with writing grpc-gateway powered REST services in Go

  • protoc-gen-struct-transformer

    Transformation function generator for protocol buffers

  • cmux

    Connection multiplexer for GoLang: serve different services on the same port! Supports gRPC

  • go-grpc-channelz

    A channelz UI for Golang. Channelz is an approved and already implemented proposal describing the inner state of gRPC connections/channels. go-grpc-channelz provides a simple UI for channelz for easy diagnosis

  • goprotoc

    Library for writing protoc plugins in Go; also includes a pure-Go protoc replacement

  • gRPC for production

    A Golang project that provides the core requirements for a production-ready gRPC communication

  • protoc-gen-mock

    A protoc plugin to generate gRPC mock services from proto definitions in Golang

  • Pike

    — Generate CRUD gRPC backends from single YAML description

  • Mortar

    GO framework for building gRPC (and REST) web services with DI, Telemetry and more

  • sqlc-grpc

    Generate gRPC/HTTP server (with metrics, tracing, swagger and grpcui) from SQL

  • protoc-gen-fieldmask

    A protoc plugin that generates fieldmask paths as static type properties of proto messages

Language-Specific / Node.js

  • Mali

    A minimalistic gRPC microservice framework for Node.js

  • grpc-host-builder

    Lightweight library for building gRPC services with server side interceptors support

  • grpc-caller

    An improved Node.js gRPC client

  • grpc-create-metadata

    Helper utility for creating gRPC

  • grpc-create-error

    Utility function for creating for gRPC responses

  • grpc-error

    class that wraps

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

  • firecomm

    Feature library for gRPC-Node

  • grpc-web-gateway

    – HTTP & WebSocket proxy gateway for gRPC services

  • grpc-reflection-js

    – gRPC Reflection client for JS

Language-Specific / 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

  • grpc-spring-boot-starter

    Spring Boot starter module for gRPC framework from LogNet

  • 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

  • hoverfly-java-grpc

    MITM proxy for recording and simulating gRPC services

  • grpcmock

    A gRPC Java testing tool to easily mock endpoints of gRPC services for IT or Unit testing

  • protoc-gen-java-optional

    A Java Protoc plugin extending generated java classes with null safe and methods

  • Vert.x gRPC

    Asynchronous, non-blocking gRPC server and client built with the Vert.x HTTP server and client. It helps you create gRPC applications using a low-level message API or generated stubs

Language-Specific / Ruby

  • gruf

    gRPC Ruby Framework

  • gapic-generator-ruby

    Generates Ruby gRPC client libraries from protocol buffer definitions of an API

Language-Specific / Python

  • Bali

    Simplify Cloud Native Microservices development base on FastAPI and gRPC

  • grpclib

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

  • pytest-grpc

    pytest plugin which allow test gRPC services

  • grpcalchemy

    The Python micro framework for building gPRC application

  • django-grpc

    Django application to build gRPC services with access to ORM, settings and everything else

  • garuda

    Automagically Exposing Django ORM over gRPC for microservices written in any other languages

  • django-grpc-framework

    A gRPC toolkit for Django inspired by djangorestframework

  • grpc_requests

    GRPC for Humans! grpc reflection support client. you can request grpc just like REST(No need Stub!)

  • betterproto

    More pythonic gRPC based on grpclib and dataclasses

Language-Specific / C#

  • MagicOnion

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

  • Grpc.Tools

    gRPC and Protocol Buffer compiler for managed C# and native C++ projects. See tutorial

  • GrpcBrowser

    a web UI for interactively debugging all types of gRPC endpoints

Language-Specific / Rust

  • grpc-rs

    The gRPC library for Rust built on C Core library and futures

  • grpc-rust

    Rust implementation of gRPC

  • tower-grpc

    (Deprecated) - A client and server gRPC implementation based on Tower. Deprecated in favour of tonic

  • tonic

    A native gRPC client & server implementation with async/await support

Language-Specific / Haskell

Language-Specific / Erlang

  • Erlang grpc

    Erlang library for gRPC

  • grpcbox

    Erlang grpc client and server

  • bert

    Erlang Google Protobuf V3 generator from HRL files

Language-Specific / Elixir

  • grpc-elixir

    The Elixir implementation of gRPC

Language-Specific / Elm

  • elm-protobuf

    Protoc plugin generating elm code from proto definitions

Language-Specific / TypeScript

  • ts-protoc-gen

    Protoc Plugin for TypeScript Declarations

  • protoc-gen-tstypes

    Configurable Protoc Plugin to generate TypeScript types

  • sisyphus.js

    gRPC runtime and compiler for Web Clients by HTTP transcoding. Recommend using with back-end framework

  • protoc-gen-grpc-gateway-ts

    TypeScript client generator for the grpc-gateway project that generates idiomatic TypeScript clients that connect the web frontend and golang backend fronted by grpc-gateway

  • protobuf-ts

    Protoc plugin and runtime for TypeScript. Generates gRPC server/client for Node.js, gRPC-Web/Twirp clients for browser, uses Fetch API

  • ts-proto

    Transforms your .proto files into strongly-typed, idiomatic TypeScript files!

  • grpc-js-typescript

    Examples of how to use gRPC with TypeScript & Node.js

  • nice-grpc

    gRPC library for Node.js and the Browser with modern API and middleware support

Language-Specific / 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

  • Mu

    Mu RPC is a purely functional library for building RPC endpoint-based services with support for gRPC and HTTP/2

  • fs2-grpc

    gRPC implementation for FS2/cats-effect using netty

  • http4s-grpc

    A pure Scala gRPC implementation! Use it with http4s Ember and deploy on JVM, Node.js, and Native

  • zio-grpc

    ScalaPB meets ZIO: write purely functional gRPC services and clients using ZIO

Language-Specific / Dart

Language-Specific / Kotlin

  • kroto-plus

    gRPC Coroutines Integration and Protobuf message DSL support

  • grpc-kotlin

    A protoc plugin for generating native Kotlin bindings using coroutine primitives for gRPC services

  • gapic-generator-kotlin

    Generates coroutine-based gRPC Kotlin client libraries from a protocol buffer description of an API

  • grpc-kapt

    Annotation driven gRPC clients & servers in Kotlin with coroutines

  • sisyphus

    Modern gRPC back-end development framework based on Kotlin/Spring Boot with Message DSL/ / support

Language-Specific / Perl

  • grpc-perl

    Experimental Perl gRPC library supporting grpc client

Language-Specific / C++

  • QtProtobuf

    gRPC and Protobuf generator and bindings for the Qt framework

  • asio-grpc

    Asynchronous gRPC with or

Language-Specific / Ballerina

Resources / Tutorials

Resources / Videos

Resources / Slides

Resources / Examples

Resources / Miscellaneous

Protocol Buffers / Documentation

Protocol Buffers / Package Managers

  • buffrs

    – A modern package manager for protocol buffers and gRPC architectures

Protocol Buffers / Tools

  • buf

    Protobuf tool that includes linting and breaking change detection. Allows many types of input including directly checking remote repositories and tarballs, and has a built-in compiler as well

  • prototools

    Documentation generator & other tools for protobuf/gRPC

  • protoc-gen-apidocs

    Documentation generator plugin for protobuf/gRPC

  • protoc-gen-doc

    Documentation generator plugin for Google Protocol Buffers

  • Protoxygen

    plugin to generate documentation for protobuf/gRPC

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

  • 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 Go gRPC middleware

  • protolock

    Protocol Buffer companion tool to and . Track your .proto files and prevent changes to messages and services which impact API compatibilty

  • protoc-gen-map

    SQL data mapper framework for Protocol Buffers

  • api-linter

    A linter for APIs defined in protocol buffers

  • protoc-gen-struct-transformer

    Transformation functions generator for Protocol Buffers

  • pbvm

    Protocol Buffers Version Manager

  • clang-format

    Protocol Buffers formating tool Can be used to format on save in editor such as or

  • intellij-protobuf-plugin

    IntelliJ-based IDEs Protobuf Language Plugin that provides Protobuf language support

  • GenDocu

    gRPC Documentation and SDK generator as a Service

  • protolint

    A pluggable linter and fixer to enforce Protocol Buffer style and conventions

  • Mouse Melon

    A user-friendly Protocol Buffers data editor

Protocol Buffers / Similar

  • gogoprotobuf

    [[Deprecated] 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

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.