awesome-grpc
A curated list of useful resources for gRPC
https://github.com/grpc-ecosystem/awesome-grpc
Last synced: 3 days ago
JSON representation
-
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.
-
Community
- Community links - Mailing list, Gitter, Twitter, Reddit
-
Official Libraries and Tools
- gRPC Ecosystem - gRPC Ecosystem that complements gRPC
- grpc_cli - gRPC CLI tool
- 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 contrib - Known useful contributions around github
- gRPC contrib - Known useful contributions around github
-
Tools
-
CLI
- httpyac - a command line client for executing integration tests for all kinds of requests (gRPC, HTTP, MQTT, Websocket).
- sylk - A gRPC framework for building projects in __Python__, __Typescript__ / __NodeJS__ and __Go__ from a simple CLI and powerful `Beta` UI platform
- 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
- 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
- grpcmd - A simple, easy-to-use, and developer-friendly CLI tool for gRPC.
- grpcmd - The "grpc" command: A simple, easy-to-use, and developer-friendly CLI tool for gRPC.
- sylk - A gRPC framework for building projects in __Python__, __Typescript__ / __NodeJS__ and __Go__ from a simple CLI and powerful `Beta` UI platform
- sylk - A gRPC framework for building projects in __Python__, __Typescript__ / __NodeJS__ and __Go__ from a simple CLI and powerful `Beta` UI platform
- grpcmd - The "grpc" command: A simple, easy-to-use, and developer-friendly CLI tool for gRPC.
- proto2asciidoc - Generate AsciiDoc documentation from a .proto file
-
GUI
- vscode-httpyac - A VSCode extension which supports sending all kinds of requests (gRPC, HTTP, MQTT, Websocket)
- Kreya - A gRPC and gRPC-web client supporting environments, templating, authentication schemes and file based syncing.
- 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
- 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
- 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
- gRPCox - Like Postman, but for gRPC. web based GUI Client for gRPC, extremely easy to use.
- 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.
- 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.
- Plumber - Another one GUI for GRPC requests (reflection only)
- 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.
- (Yodelay.io) - A browser GUI Making sure your outbound đŁď¸ âyodelayâ returns the âIiiOooâ đŁ that you expect.
- ezy - đĽ Fully-featured GUI client for gRPC/gRPC-Web.
- Fint - Create, run, manage performance tests and functional tests cases for gRPC service in a single (commercial) tool
- Grip - Native macOS client for interacting with gRPC services
- Kalisto - Automate and test intricate gRPC API workflows with ease using JavaScript-based scripting
- Kalisto - Automate and test intricate gRPC API workflows with ease using JavaScript-based scripting
- Postman - Create, test, and debug gRPC services directly from Postman
- grpcmd-gui - A modern cross-platform desktop app and API client for gRPC development and testing.
- 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
-
Testing
- karate-grpc - Example of using [Karate](https://github.com/karatelabs/karate) to integrate and test gRPC.
- nosymouse - Saas tool to functional, perfomance and secure testing gRPC
- strest-grpc - A load tester for stress testing grpc intermediaries.
- ghz - Simple gRPC benchmarking and load testing tool inspired by hey and grpcurl.
- gatling-grpc - A [Gatling](http://gatling.io/) stress test plugin for gRPC.
- 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
- Step CI - Open-Source API Testing and Monitoring (now with gRPC support!)
- Keploy - Keploy is developer-centric API testing tool that creates tests along with built-in-mocks, faster than unit tests. ([gRPC supported](https://keploy.io/docs/keploy-explained/api-testing-faq/#3-what-protocols-and-formats-does-keploy-support))
- grpcmd-script - A powerful framework for testing gRPC endpoints using JavaScript within a single binary executable
- Microcks - A [Cloud Native Computing Sandbox project](https://landscape.cncf.io/?selected=microcks) đ dedicated to API Mocking and Testing ([gRPC supported](https://microcks.io/documentation/using/grpc/))
- karate-grpc - Example of using [Karate](https://github.com/karatelabs/karate) to integrate and test gRPC.
-
Other
- kafka-pixy - gRPC/REST proxy for Kafka
- 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).
- ratelimit - Go/gRPC service designed to enable generic rate limit scenarios from different types of applications
- protoc-gen-hbs - Fast and easy protobuf generation with handlebars and some helpers
-
-
Language-Specific
-
Go
- go-GRPC Micro - [Micro](https://github.com/micro) based gRPC framework for microservices
- go-kit gRPC - [Go Kit](https://github.com/go-kit) with gRPC as transport
- protoc-gen-struct-transformer - Transformation function generator for protocol buffers.
- proteus - Generate .proto files from Go source code
- 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
- clay - Minimal server platform for gRPĐĄ+REST+Swagger APIs
- go-microservice-helpers - A collection of handy snippets that simplify creation of gRPC servers and clients
- lile - Easily create gRPC services in Go
- 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
- grapi - đŽ A surprisingly easy API server and generator in gRPC and Go
- grpc-consul-resolver - Easy to use endpoints resolver for the services registered in the [Consul](https://www.consul.io/)
- kuberesolver - gRPC Load Balancer with Kubernetes resolver
- ttrpc - GRPC for low-memory environments
- gripmock - gRPC Mock Server
- grpc-gateway-boilerplate - All the boilerplate you need to get started with writing grpc-gateway powered REST services in Go
- 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
- 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
- gRPC over NATS - nRPC is an RPC framework like gRPC, but for NATS.
- 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 for production - A Golang project that provides the core requirements for a production-ready gRPC communication.
- grpcui - Embed a gRPC web UI into a Go gRPC/HTTP server
- grpc-proxy - gRPC proxy is a Go reverse proxy that allows for rich routing of gRPC calls with minimum overhead
-
Node.js
- grpc-web-gateway
- 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 `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-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
-
Java
- hoverfly-java-grpc - MITM proxy for recording and simulating gRPC services
- 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
- 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
- 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 `setOrClear` and `getOptional` methods.
- gax-java - Google API Extensions for Java
- grpc-spring-boot-starter - Spring Boot starter module for gRPC framework
- 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.
- 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.
-
C#
- Grpc.Tools - gRPC and Protocol Buffer compiler for managed C# and native C++ projects. See [Introduction to gRPC on .NET Core](https://docs.microsoft.com/en-us/aspnet/core/grpc/?view=aspnetcore-3.0) tutorial.
- GrpcBrowser - a web UI for interactively debugging all types of gRPC endpoints
- 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](https://docs.microsoft.com/en-us/aspnet/core/grpc/?view=aspnetcore-3.0) tutorial.
-
TypeScript
- protoc-gen-tstypes - Configurable Protoc Plugin to generate TypeScript types.
- ts-protoc-gen - Protoc Plugin for TypeScript Declarations
- sisyphus.js - gRPC runtime and compiler for Web Clients by HTTP transcoding. Recommend using with [Sisyphus](https://github.com/ButterCam/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.
- 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](https://github.com/ButterCam/sisyphus) back-end framework.
-
Scala
- ScalaPB - Protocol Buffer Compiler for Scala
- 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
- Akka-gRPC - Akka gRPC provides support for building streaming gRPC servers and clients on top of Akka Streams.
- Akka-gRPC - Akka gRPC provides support for building streaming gRPC servers and clients on top of Akka Streams.
-
Dart
-
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
- 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
- Fast-gRPC - The Python async micro framework for easy develop gRPC server
- grpc_requests - GRPC for Humans! grpc reflection support client. you can request grpc just like REST(No need Stub!)
-
Rust
- tower-grpc - A client and server gRPC implementation based on Tower. Deprecated in favour of tonic
- grpc-rust - Rust implementation of gRPC
- tonic - A native gRPC client & server implementation with async/await support
- wtx - RFC7541 and RFC9113 implementation with built-in support for `gRPC` connections.
- grpc-rs - The gRPC library for Rust built on C Core library and futures
-
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
- bert - Erlang Google Protobuf V3 generator from HRL files
-
Elm
- elm-protobuf - Protoc plugin generating elm code from proto definitions
-
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/[HTTP transcoding](https://aip.bybutter.com/127)/[Google AIP](https://aip.bybutter.com) support.
-
Perl
- grpc-perl - Experimental Perl gRPC library supporting grpc client
-
C++
- QtProtobuf - gRPC and Protobuf generator and bindings for the Qt framework
- asio-grpc - Asynchronous gRPC with [Boost.Asio](https://github.com/boostorg/asio) or [libunifex](https://github.com/facebookexperimental/libunifex)
- qtgrpc - gRPC and Protobuf generator and bindings for the Qt framework
- 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
-
Elixir
- grpc-elixir - The Elixir implementation of gRPC
-
-
Resources
-
Tutorials
- Getting Started with Microservices using Go, gRPC and Kubernetes
- 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
- 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
- Serving gRPC and HTTP services on the same port - Small tutorial on how to serve http and gRPC on same port in Go
- OpenCensus for Go gRPC developers - Tutorial on how to use OpenCensus with gRPC and Go. Also available for [Java](https://medium.com/@orijtech/opencensus-for-java-grpc-developers-23c25de0a057) and [Python](https://medium.com/@orijtech/opencensus-for-python-grpc-developers-9e460e054395).
- 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](https://github.com/amsokol/go-grpc-http-rest-microservice-tutorial).
- 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](https://jbrandhorst.com/post/gopherjs-grpcweb/).
- The G-Unit Stack: Go, GraphQL, and gRPC - A blog post and tutorial on using Go, GraphQL and gRPC. Associated [repo](https://github.com/iheanyi/go-grpc-graphql-simple-example).
- Envoy, gRPC, and Rate Limiting - A tutorial on using gRPC and Envoy to build a rate limit service - [Venil Noronha](https://venilnoronha.io), 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](https://venilnoronha.io), 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.
- Understanding gRPC - An introductory gRPC tutorial with example application in Go.
- 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 in Go - A detailed tutorial for play gRPC with Go.
- 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.
- Building High Performance APIs In Go Using gRPC - Small tutorial on building a simple API using gRPC and Go
- gRPC in Production
- Writing gRPC Interceptors in Go - A simple tutorial on gRPC Interceptors
- OpenCensus for Go gRPC developers - Tutorial on how to use OpenCensus with gRPC and Go. Also available for [Java](https://medium.com/@orijtech/opencensus-for-java-grpc-developers-23c25de0a057) and [Python](https://medium.com/@orijtech/opencensus-for-python-grpc-developers-9e460e054395).
- Building High Performance APIs In Go Using gRPC And Protocol Buffers - An introductory gRPC Go tutorial.
- gRPC in Production
- Backward and Forward Compatibility, Protobuf Versioning, Serialization - A small article on making gRPC API changes
- 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.
- Getting Started with Microservices using Go, gRPC and Kubernetes
- Getting Started with Microservices using Go, gRPC and Kubernetes
- Getting Started with Microservices using Go, gRPC and Kubernetes
- Building High Performance APIs In Go Using gRPC - Small tutorial on building a simple API using gRPC and Go
- Our experience designing and building gRPC services - Blog series from Bugsnag on building a new Releases dashboard backend using gRPC
- 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](https://github.com/jtattermusch/grpc-loadbalancing-kubernetes-examples).
- 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 a gRPC application in Ballerina - A Demo on how to build a gRPC application in Ballerina at gRPC Meetup
- Generating Unified APIs with Protocol Buffers and gRPC - A video on Protocol Buffers, gRPC and Envoy from Lyft.
- Building a gRPC application in Ballerina - A Demo on how to build a gRPC application in Ballerina at gRPC Meetup
-
Slides
- 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 -
- 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
- Go+Microservices at Mercari - Taichi Nakashima at Go Conference 2017
- gRPC Overview - An overview at gRPC: Talk at Slack by
- gRPC Overview - An overview at gRPC: Talk at Slack by
- 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
- 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
- OpenAPI and gRPC Side by-Side - APIStrat Conference -
- gRPC - RPC rebirth? - Presentation about gRPC at the 23. NetPonto community meeting in Porto by LuĂs Barbosa
-
Examples
- Text to Speech server with gRPC and Kubernetes - justforfunc #12
- Making a Multiplayer Game With Go and gRPC - gRPC game example in Go. [Source](https://github.com/mortenson/grpc-game-example).
- Envoy proxy as an API gateway for gRPC microservice - A gRPC service in Go, built with Bazel and deployed into Kubernetes cluster with [Tilt](https://tilt.dev) and REST API enabled. [Source](https://github.com/ekhabarov/bazel-k8s-envoy)
- gifinator - A sample application demonstrating Kubernetes, gRPC, Go and cute Gophers demoed at Google GCP Next 2017
- 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)
- Colossus - An example multi-language gRPC microservice architecture built by Bazel and targeting Kubernetes
- 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
- 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.
- Detailed examples for Go - A detailed gRPC example in Go.
- 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 Ballerina client Example - A collection of simple gRPC client examples written in Ballerina
- go-micro-services - An demonstration of Golang micro-services that expose a HTTP/JSON frontend and then leverages gRPC for inter-service communication
- gRPC Java Examples - A collection of useful/essential gRPC Java Examples
- 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
- Migrating APIs from REST to gRPC at WePay - A blog post on migrating from REST to gRPC
- Packaging Generated Code for gRPC Services - An article demonstrating a strategy on how to version and package gRPC libraries
-
-
Protocol Buffers
-
Documentation
- Third-Party Add-ons for Protocol Buffers - List of add-ons for Protocol Buffers in main github repository
- Third-Party Add-ons for Protocol Buffers - List of add-ons for Protocol Buffers in main github repository
-
Tools
- clang-format - Protocol Buffers formating tool
- Visual studio code - protocol-buffer-editor).
- GenDocu - gRPC Documentation and SDK generator as a Service.
- 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](http://doxygen.nl) 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](https://github.com/google/protobuf/issues/3303).
- 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
- 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.
- protoc-gen-map - SQL data mapper framework for Protocol Buffers.
- api-linter - A linter for APIs defined in protocol buffers.
- pbvm - Protocol Buffers Version Manager
- 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.
- GenDocu - gRPC Documentation and SDK generator as a Service.
- Mouse Melon - A user-friendly Protocol Buffers data editor.
- 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
- TChannel - Network multiplexing and framing protocol for RPC
- gogoprotobuf - [[Deprecated] Fork of golang/protobuf with extra code generation features
- Twirp - A simple RPC framework with protobuf service definitions
- Greenpack - Serialization format similar to MessagePack, but adds field versioning and type annotation
-
Package Managers
-
-
Archive
-
Protocol Buffers
- protoc-gen-validate - Protoc plugin to generate polyglot message validators
-
Programming Languages
Categories
Sub Categories
Tutorials
45
Go
39
Videos
36
GUI
26
Tools
22
Other
20
Testing
19
Examples
19
CLI
19
Slides
17
Node.js
16
Java
14
Python
11
TypeScript
10
Similar
9
Scala
7
Kotlin
5
Rust
5
Erlang
4
C#
4
C++
4
Miscellaneous
4
Ballerina
2
Dart
2
Documentation
2
Ruby
2
Protocol Buffers
1
Elixir
1
Haskell
1
Elm
1
Package Managers
1
Perl
1
Keywords
grpc
129
protobuf
52
golang
38
go
28
protocol-buffers
23
grpc-client
14
rpc
13
kubernetes
10
protoc
10
java
9
grpc-web
9
typescript
9
microservices
9
microservice
8
grpc-java
8
cli
8
http
7
grpc-server
7
proxy
7
swagger
6
grpc-go
6
docker
5
kotlin
5
spring-boot
5
grpc-gateway
5
api
5
proto
5
prometheus
4
testing
4
json
4
http2
4
grpc-framework
3
load-testing
3
database
3
thrift
3
devops
3
proto3
3
graphql
3
middleware
3
nodejs
3
api-testing
3
twirp
3
web
3
javascript
3
opentracing
3
debugging-tool
3
openapi
3
plugin
3
performance
3
rust
3