grpc-ecosystem/awesome-grpc
grpc-ecosystem/awesome-grpc — 8.3k★ trên GitHub. A curated list of useful resources for gRPC
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Snapshot
Cộng tác viên hàng đầu
Xem cộng tác viên hàng đầu
Awesome gRPC 
A curated list of useful resources for gRPC
Contents
- Documentation
- Community
- Official Libraries and Tools
- Tools
- CLI
- GUI
- Testing
- Other
- Language-Specific
- Go
- Node.js
- Java
- Ruby
- Python
- C#
- Rust
- Haskell
- Erlang
- Elixir
- Elm
- TypeScript
- Scala
- Dart
- Kotlin
- Perl
- C++
- Ballerina
- Resources
- Tutorials
- Videos
- Slides
- Examples
- Miscellaneous
- Protocol Buffers
- Documentation
- Package Managers
- Tools
- Similar
- Archive
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
BetaUI platform - grpcmd - The "grpc" command: A simple, easy-to-use, and developer-friendly CLI tool for gRPC.
GUI
- Postman - Create, test, and debug gRPC services directly from Postman
- 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)
- Kreya - A gRPC and gRPC-web client supporting environments, templating, authentication schemes and file based syncing.
- 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.
- grpcmd-gui - A modern cross-platform desktop app and API client for gRPC development and testing.
- gRPCox - Like Postman, but for gRPC. web based GUI Client for gRPC, extremely easy to use.
- 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.
- 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
Testing
- ghz - Simple gRPC benchmarking and load testing tool inspired by hey and grpcurl.
- 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)
- grpcmd-script - A powerful framework for testing gRPC endpoints using JavaScript within a single binary executable
- Keploy - Keploy is developer-centric API testing tool that creates tests along with built-in-mocks, faster than unit tests. (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.
- 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-kit gRPC - Go Kit with gRPC as transport
- gRPC over NATS - nRPC is an RPC framework like gRPC, but for NATS.
- 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
- grpc-proxy - gRPC proxy is a Go reverse proxy that allows for rich routing of gRPC calls with minimum overhead
- lile - Easily create gRPC services in Go
- 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 Consul
- 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
- Thunder Framework - A gRPC-Gateway-powered framework with Prisma, Kubernetes, and Go for scalable microservices.
- protoc-gen-go-mock - A protoc plugin for generating minimal gRPC service mocks suitable for use in tests.
- gRPC over WebSocket - connect to a gRPC Server behind a firewall by using a pre-established WebSocket connection
Node.js
- Mali - A minimalistic gRPC microservice framework for 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
Errorsfor gRPC responses - grpc-error -
GRPCErrorclass 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-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-reflection-js – gRPC Reflection client for JS
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.
- grpc-java-contrib - Useful extensions for the grpc-java library
- 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
setOrClearandgetOptionalmethods. - 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.
Ruby
- gruf - gRPC Ruby Framework
- gapic-generator-ruby - Generates Ruby gRPC client libraries from protocol buffer definitions of an API.
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
- Fast-gRPC - The Python async micro framework for easy develop gRPC server
- 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
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 Introduction to gRPC on .NET Core tutorial.
- GrpcBrowser - a web UI for interactively debugging all types of gRPC endpoints
Rust
- grpc-rs - The gRPC library for Rust built on C Core library and futures
- tonic - A native gRPC client & server implementation with async/await support
- wtx - RFC7541 and RFC9113 implementation with built-in support for
gRPCconnections.
Haskell
- grpc-haskell - gRPC library binding for Haskell
Erlang
- Erlang grpc - Erlang library for gRPC
- grpcbox - Erlang grpc client and server
- bert - Erlang Google Protobuf V3 generator from HRL files
Elixir
- grpc-elixir - The Elixir implementation of gRPC
Elm
- elm-protobuf - Protoc plugin generating elm code from proto definitions
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 Sisyphus 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.
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
Dart
- grpc-dart - Protocol Buffer Compiler for Dart
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
- sisyphus - Modern gRPC back-end development framework based on Kotlin/Spring Boot with Message DSL/HTTP transcoding/Google AIP support.
Perl
- grpc-perl - Experimental Perl gRPC library supporting grpc client
C++
- qtgrpc - gRPC and Protobuf generator and bindings for the Qt framework
- asio-grpc - Asynchronous gRPC with Boost.Asio or libunifex
- sugar-proto - A Protobuf wrapper with expressive, minimal, and strongly-typed C++ syntax, close to plain structs.
Ballerina
- Ballerina gRPC - Ballerina library for gRPC
- Ballerina gRPC CLI - Ballerina gRPC CLI tool
Resources
Tutorials
- 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
- Writing gRPC Interceptors in Go - A simple tutorial on gRPC Interceptors
- An introduction to gRPC
- How we use gRPC to build a client/server system in Go - A technical presentation on how to use gRPC (and Protobuf) to build a robust client/server system
- OpenCensus for Go gRPC developers - Tutorial on how to use OpenCensus with gRPC and Go. Also available for Java and Python.
- How to develop Go gRPC microservice with HTTP/REST endpoint, middleware, Kubernetes deployment, etc - A series of blog posts for gRPC development using Go. Source code.
- GopherJS Client and gRPC Server - A guide to implementing a GopherJS frontend to a gRPC backend exposed over HTTP via the gRPC-gateway. Also available related gRPC-Web with GopherJS tutorial.
- The G-Unit Stack: Go, GraphQL, and gRPC - A blog post and tutorial on using Go, GraphQL and gRPC. Associated repo.
- Envoy, gRPC, and Rate Limiting - A tutorial on using gRPC and Envoy to build a rate limit service - Venil Noronha, VMware Open Source Technology Center
- Seamless Cloud-Native Apps with gRPC-Web and Istio - A tutorial on building a Cloud-Native web app using gRPC-Web and Istio - Venil Noronha, VMware Open Source Technology Center
- Backward and Forward Compatibility, Protobuf Versioning, Serialization - A small article on making gRPC API changes
- Node, gRPC, and Postgres - This tutorial looks at how to implement an API with Node, gRPC, and Postgres.
- Building High Performance APIs In Go Using gRPC And Protocol Buffers - An introductory gRPC Go tutorial.
- Part 1: Demystifying gRPC - A simple gRPC service with context cancelation and secure connection over SSL/TLS.
- Part 2: Demystifying gRPC - Extend the service with gRPC streaming and Python backend.
- Part 3: Demystifying gRPC - Add Unary and Stream gRPC Interceptors to a service and provide REST endpoints with grpc-gateway.
- gRPC in Microservices - Tutorial on using gRPC in microservice architetures.
- gRPC and Protobuffer API Documentation with proto2asciidoc and code2asciidoc - Tutorial on generating AsciiDoc documentation from a .proto file, includes a small gRPC demo project too.
- gRPC: Top 6 Things that Bite Newbies - A review of stumbling blocks for those moving to gRPC for the first time.
- A beginners guide to gRPC with Rust
- Writing a gRPC service with Ballerina - Getting started guide on building a simple gRPC service with Ballerina and invoking the service through a Ballerina gRPC client application.
- gRPC-web: Using gRPC in Your Front-End Application - A tutorial on using gRPC-web in a frontend application.
- Load balancing gRPC in Kubernetes with a service mesh - Explains issues load balancing gRPC, then employs a service mesh (istio) to L7 load balance a gRPC service in Kubernetes.
- RPC Adoption and Working Architecture - Overview of gRPC and comparison with REST and WebSockets.
- Protobuf Editions explained - Detailed explanation of Protobuf editions
Videos
- 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
- Efficient service communication with gRPC - Talk at microXchg 2018 Berlin
- gRPC Java Course on Udemy - Online Course (4 hours) that walks through several examples and implementations of gRPC using the Java Language
- HTTP and JSON for your gRPC Services - Michael Hamrah - from Full Stack Fest
- Types All the Way Down — gRPC and Go Infrastructure at Lyft - Christopher Burnett at Istanbul Tech Talks
- Using gRPC for Long-lived and Streaming RPCs - Eric Anderson, Google at KubeCon North America 2018
- Intro: gRPC-Web - Stanley Cheung & Wenbo Zhu, Google at at KubeCon North America 2018
- gRPC Loadbalancing on Kubernetes - Presentation at KubeCon Europe 2018. Source.
- Putting gRPC in Practice - Presentation on working with gRPC.
- The Story of Why We Migrate to gRPC and How We Go About It - Matthias Grüter, Spotify at KubeCon + CloudNativeCon Europe 2019
- Authentication and Security in gRPC Microservices - Jan Tattermusch, Google at KubeCon + CloudNativeCon Europe 2019
- JustFootball’s Journey to gRPC + Linkerd in Production - Ben Lambert, & Kevin Lingerfelt at KubeCon + CloudNativeCon Europe 2019
- gRPC load balancing and Service Mesh - Vishal Powar, Google at KubeCon + CloudNativeCon Europe 2019
- Adopting gRPC: Overcoming Team and Technical Hurdles - GOTO 2019 • Adopting gRPC: Overcoming Team and Technical Hurdles • Josh Humphries
- Moving to gRPC Java - Mya Pitzeruse at Indeed.com
- Building Microservices with Go - A series of tutorials for building microservices with Go, covers using gRPC (source).
- Building a gRPC application in Ballerina - A Demo on how to build a gRPC application in Ballerina at gRPC Meetup
Slides
- 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
- gRPC - RPC rebirth? - Presentation about gRPC at the 23. NetPonto community meeting in Porto by Luís Barbosa
Examples
- 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 Examples - A collection of useful/essential gRPC Java 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
- Colossus - An example multi-language gRPC microservice architecture built by Bazel and targeting Kubernetes
- coolstore-microservices - A containerized polyglot gRPC microservices based on .NET Core, Nodejs and more running on Istio
- gRPC Microservices with Go and Kubernetes - A sample application use gRPC in microservice and deploy in kubernetes.
- Making a Multiplayer Game With Go and gRPC - gRPC game example in Go. Source.
- Detailed examples for Go - A detailed gRPC example in Go.
- Envoy proxy as an API gateway for gRPC microservice - A gRPC service in Go, built with Bazel and deployed into Kubernetes cluster with Tilt and REST API enabled. Source
- gRPC Ballerina service Example - A collection of simple gRPC service examples written in Ballerina
- gRPC Ballerina client Example - A collection of simple gRPC client examples written in Ballerina
- Go gRPC features examples - A collection of gRPC and Go examples showcasing features of the framework
- Hello gRPC - Simple server and client examples showcasing gRPC features(including proxy and propagate, running in containers and kubernetes) with Java/Kotlin/Go/NodeJs/Python/Rust/C++/C#.
- GCP - Online Boutique application rewritten in Ballerina - Online Boutique application rewritten in Ballerina
- gRPC Goat - An intentionally vulnerable gRPC Security Lab - gRPC Goat is a "Vulnerable by Design" lab created to provide an interactive, hands-on playground for learning and practicing gRPC security.
Miscellaneous
- 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
- Migrating APIs from REST to gRPC at WePay - A blog post on migrating from REST to gRPC
Protocol Buffers
Documentation
- Website - Official website and documentation
- Third-Party Add-ons for Protocol Buffers - List of add-ons for Protocol Buffers in main github repository
Package Managers
- buffrs – A modern package manager for protocol buffers and gRPC architectures.
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 - Doxygen 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. Relevant PR and discussion.
- protoc-gen-lint - A plug-in for Google's Protocol Buffers (protobufs) compiler to lint .proto files for style violations
- go-proto-validators - Generate message validators from .proto annotations, used in
grpc_validatorGo gRPC middleware. - protolock - Protocol Buffer companion tool to
protocandgit. 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 Visual studio code or IntelliJ.
- intellij-protobuf-plugin - IntelliJ-based IDEs Protobuf Language Plugin that provides Protobuf language support.
- protolint - A pluggable linter and fixer to enforce Protocol Buffer style and conventions.
- Mouse Melon - A user-friendly Protocol Buffers data editor.
- Protovalidate - Protovalidate provides standard annotations to validate common rules on messages and fields, as well as the ability to use CEL to write custom rules.
Similar
- MessagePack - It's like JSON, but fast and small
- Thrift - Thrift is an interface definition language and binary communication protocol
- 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
Archive
Tools and libraries that are no longer maintained.
Tools
GUI
- letmegrpc - Generate a web form gui from a grpc specification
- omgRPC - A GUI client for interacting with gRPC services, similar to what Postman is for REST APIs
- BloomRPC - 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
- 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
Testing
- gatling-grpc - A Gatling stress test plugin for gRPC.
Language-Specific
Go
- go-GRPC Micro - Micro based gRPC framework for microservices
- grpc-web - gRPC Web implementation for Golang and TypeScript
- grpclb - External Load Balancing Service solution for gRPC written in Go
- go-microservice-helpers - A collection of handy snippets that simplify creation of gRPC servers and clients
- proteus - Generate .proto files from Go source code
- protoc-gen-cobra - Command line tool generator for Go gRPC
Node.js
- grpc-host-builder - Lightweight library for building gRPC services with server side interceptors support
- grpc-bus - Call gRPC services (even streams!) from the browser over any two-way socket to Node and soon Go
- grpc-web-gateway – HTTP & WebSocket proxy gateway for gRPC services
Java
- reactive-grpc - Integrates reactive programming with grpc-java
- rejoiner - Generates a GraphQL schema from gRPC microservices
Rust
- grpc-rust - Rust implementation of gRPC
- tower-grpc A client and server gRPC implementation based on Tower. Deprecated in favour of tonic
Kotlin
- 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
C++
- QtProtobuf - gRPC and Protobuf generator and bindings for the Qt framework
Protocol Buffers
Tools
- 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
- protoc-gen-map - SQL data mapper framework for Protocol Buffers.
- GenDocu - gRPC Documentation and SDK generator as a Service.
Similar
- gogoprotobuf - Fork of golang/protobuf with extra code generation features
- TChannel - Network multiplexing and framing protocol for RPC
Contribute
Contributions welcome! Read the contribution guidelines first.
License

This work is licensed under a Creative Commons Attribution 4.0 International License.
Repo liên quan
Awesome list of GraphQL
A list of SaaS, PaaS and IaaS offerings that have free tiers of interest to devops and infradev
The open-source, cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC. With Cloud, Local and Git storage.
gRPC to JSON proxy generator following the gRPC HTTP spec
Trả lời nhanh
Cùng nhóm API còn repo nào?
grpc-ecosystem/awesome-grpc thuộc nhóm API trên TopGit, cùng 4 topic GitHub. Trang Trending và Topics liệt kê các repo cùng số sao và cùng ngôn ngữ để so sánh.
Đọc thêm về grpc-ecosystem/awesome-grpc ở đâu?
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/grpc-ecosystem/awesome-grpc là nguồn chính thức.
grpc-ecosystem/awesome-grpc có phải mã nguồn mở không?
Có — grpc-ecosystem/awesome-grpc phát hành theo license CC-BY-4.0, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/grpc-ecosystem/awesome-grpc.
grpc-ecosystem/awesome-grpc có website riêng không?
TopGit chưa ghi nhận URL trang chủ cho grpc-ecosystem/awesome-grpc. Phần README ở tab phía trên thường có link demo, hoặc xem mô tả GitHub của repo.
grpc-ecosystem/awesome-grpc dùng license gì?
grpc-ecosystem/awesome-grpc phát hành theo license CC-BY-4.0. Nên mở file LICENSE trên GitHub để xác nhận — license metadata đôi khi lệch với thực tế dự án.
grpc-ecosystem/awesome-grpc là gì?
grpc-ecosystem/awesome-grpc (grpc-ecosystem/awesome-grpc) là dự án đa ngôn ngữ trên GitHub. Theo mô tả gốc: A curated list of useful resources for gRPC
Vì sao grpc-ecosystem/awesome-grpc được xếp vào nhóm API?
TopGit xếp grpc-ecosystem/awesome-grpc vào nhóm API dựa trên GitHub topics và mô tả của repo (gắn thẻ: "awesome", "awesome-list", "grpc"). Việc phân loại dựa trên metadata thật của repo, không phải đoán theo cảm tính biên tập.
Đọc đầy đủ README ở tab phía trên.