{"id":13449216,"url":"https://github.com/grpc-ecosystem/awesome-grpc","last_synced_at":"2025-09-29T19:30:31.850Z","repository":{"id":37359617,"uuid":"103694867","full_name":"grpc-ecosystem/awesome-grpc","owner":"grpc-ecosystem","description":"A curated list of useful resources for gRPC","archived":false,"fork":false,"pushed_at":"2024-12-05T02:04:52.000Z","size":599,"stargazers_count":7674,"open_issues_count":10,"forks_count":577,"subscribers_count":175,"default_branch":"master","last_synced_at":"2024-12-16T17:05:24.864Z","etag":null,"topics":["awesome","awesome-list","grpc","protocol-buffers"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grpc-ecosystem.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-15T19:41:00.000Z","updated_at":"2024-12-16T09:40:09.000Z","dependencies_parsed_at":"2024-01-13T00:38:15.597Z","dependency_job_id":"599356f4-a9f1-4687-9b00-029f9c697449","html_url":"https://github.com/grpc-ecosystem/awesome-grpc","commit_stats":{"total_commits":285,"total_committers":130,"mean_commits":"2.1923076923076925","dds":0.5508771929824561,"last_synced_commit":"08efd41141a366e3aa5f3750d753833e45662529"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grpc-ecosystem%2Fawesome-grpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grpc-ecosystem%2Fawesome-grpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grpc-ecosystem%2Fawesome-grpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grpc-ecosystem%2Fawesome-grpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grpc-ecosystem","download_url":"https://codeload.github.com/grpc-ecosystem/awesome-grpc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234650362,"owners_count":18866193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome","awesome-list","grpc","protocol-buffers"],"created_at":"2024-07-31T06:00:33.497Z","updated_at":"2025-09-29T19:30:31.843Z","avatar_url":"https://github.com/grpc-ecosystem.png","language":null,"funding_links":[],"categories":["Others","HarmonyOS","Technical","Databases","miscellaneous","Networking","Don't forget to give a :star: to make the project popular","Other Lists","网络服务","📚 Learning \u0026 Resources","API development","Misc","General"],"sub_categories":["Windows Manager","awesome-*","gRPC","TeX Lists","网络服务_其他","Design Tools"],"readme":"# Awesome gRPC [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)\n\n[\u003cimg src=\"https://cdn.rawgit.com/grpc/grpc.github.io/master/img/grpc.svg\" align=\"right\"\u003e](https://grpc.io)\n\n\u003e A curated list of useful resources for gRPC\n\n\n## Contents\n\n- [Documentation](#documentation)\n- [Community](#community)\n- [Official Libraries and Tools](#official)\n- [Tools](#tools)\n  * [CLI](#tools-cli)\n  * [GUI](#tools-gui)\n  * [Testing](#tools-test)\n  * [Other](#tools-other)\n- [Language-Specific](#lang)\n  * [Go](#lang-go)\n  * [Node.js](#lang-nodejs)\n  * [Java](#lang-java)\n  * [Ruby](#lang-ruby)\n  * [Python](#lang-py)\n  * [C#](#lang-cs)\n  * [Rust](#lang-rust)\n  * [Haskell](#lang-hs)\n  * [Erlang](#lang-erlang)\n  * [Elixir](#lang-elixir)\n  * [Elm](#lang-elm)\n  * [TypeScript](#lang-ts)\n  * [Scala](#lang-scala)\n  * [Dart](#lang-dart)\n  * [Kotlin](#lang-kotlin)\n  * [Perl](#lang-perl)\n  * [C++](#lang-cpp)\n  * [Ballerina](#lang-ballerina)\n- [Resources](#resources)\n  * [Tutorials](#res-tuts)\n  * [Videos](#res-videos)\n  * [Slides](#res-slides)\n  * [Examples](#res-examples)\n  * [Miscellaneous](#res-misc)\n- [Protocol Buffers](#proto)\n  * [Documentation](#proto-docs)\n  * [Package Managers](#proto-package-managers)\n  * [Tools](#proto-tools)\n- [Similar](#similar)\n- [Archive](#archive)\n\n## Documentation\n\n- [Website](https://grpc.io/) - Official documentation, libraries, resources, samples and FAQ\n- [Technical documentation](https://github.com/grpc/grpc/tree/master/doc) - Collection of useful technical documentation\n- [gRPC status codes](https://github.com/grpc/grpc/blob/master/doc/statuscodes.md) - Status codes and their use in gRPC\n- [gRPC status code mapping](https://github.com/grpc/grpc/blob/master/doc/http-grpc-status-mapping.md) - HTTP to gRPC Status Code Mapping\n- [grpc-errors](https://github.com/avinassh/grpc-errors) - Code examples in each language on how to return and handle error statuses.\n- [API Design Guide](https://cloud.google.com/apis/design/) - Google Cloud API Design Guide useful for gRPC API design insights\n\n## Community\n\n- [Community links](https://grpc.io/community/) - Mailing list, Gitter, Twitter, Reddit\n\n\u003ca name=\"official\"\u003e\u003c/a\u003e\n## Official Libraries and Tools\n\n- [gRPC Core](https://github.com/grpc/grpc) - C, C++, Ruby, Node.js, Python, PHP, C#, Objective-C\n- [gRPC Java](https://github.com/grpc/grpc-java) - The Java gRPC implementation. HTTP/2 based RPC\n- [gRPC Kotlin](https://github.com/grpc/grpc-kotlin) - The Kotlin gRPC implementation. Based on gRPC Java\n- [gRPC Node.js](https://github.com/grpc/grpc-node) - gRPC for Node.js\n- [gRPC Go](https://github.com/grpc/grpc-go) - The Go language implementation of gRPC. HTTP/2 based RPC\n- [gRPC Swift](https://github.com/grpc/grpc-swift) - The Swift language implementation of gRPC\n- [gRPC Dart](https://github.com/grpc/grpc-dart) - The Dart language implementation of gRPC\n- [gRPC C#](https://github.com/grpc/grpc-dotnet) - The C# language implementation of gRPC\n- [gRPC Web](https://github.com/grpc/grpc-web) - gRPC for Web Clients\n- [gRPC Ecosystem](https://github.com/grpc-ecosystem) - gRPC Ecosystem that complements gRPC\n- [gRPC contrib](https://github.com/grpc/grpc-contrib) - Known useful contributions around github\n- [grpc_cli](https://github.com/grpc/grpc/blob/master/doc/command_line_tool.md) - gRPC CLI tool\n\n## Tools\n\n\u003ca name=\"tools-cli\"\u003e\u003c/a\u003e\n### CLI\n\n- [polyglot](https://github.com/grpc-ecosystem/polyglot) - A gRPC command line client written in Java\n- [grpcc](https://github.com/njpatel/grpcc) - Node.js grpc command-line client\n- [gcall](https://github.com/bojand/gcall) - Simple Node.js gRPC command line interface\n- [Evans](https://github.com/ktr0731/evans) - more expressive universal gRPC (CLI) client\n- [grpcurl](https://github.com/fullstorydev/grpcurl) - Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers\n- [httpyac](https://httpyac.github.io/guide/installation_cli.html) - a command line client for executing integration tests for all kinds of requests (gRPC, HTTP, MQTT, Websocket).\n- [protodot](https://github.com/seamia/protodot) - Transforming your .proto files into .dot files (and .svg, .png if you happen to have graphviz installed)\n- [grpc-client-cli](https://github.com/vadimi/grpc-client-cli) - interactive gRPC client\n- [proto2asciidoc](https://github.com/productsupcom/proto2asciidoc) - Generate AsciiDoc documentation from a .proto file\n- [proto-to-postman](https://github.com/sonatard/proto-to-postman) - Create postman API import collection from .proto files\n- [gWhisper](https://github.com/IBM/gWhisper) - Client with interactive tab-completion (uses reflection) and human readable format\n- [grpcdebug](https://github.com/grpc-ecosystem/grpcdebug) - Debugs serving gRPC applications with tools like channel trace info, xDS config dump, and health checking\n- [sylk](https://github.com/sylk-build/sylk) - A gRPC framework for building projects in __Python__, __Typescript__ / __NodeJS__ and __Go__ from a simple CLI and powerful `Beta` UI platform\n- [grpcmd](https://grpc.md) - The \"grpc\" command: A simple, easy-to-use, and developer-friendly CLI tool for gRPC.\n\n\u003ca name=\"tools-gui\"\u003e\u003c/a\u003e\n### GUI\n\n- [Postman](https://postman.com/) - Create, test, and debug gRPC services directly from Postman\n- [grpcui](https://github.com/fullstorydev/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)\n- [Kreya](https://kreya.app) - A gRPC and gRPC-web client supporting environments, templating, authentication schemes and file based syncing.\n- [vscode-httpyac](https://httpyac.github.io/guide/installation_vscode.html) - A VSCode extension which supports sending all kinds of requests (gRPC, HTTP, MQTT, Websocket)\n- [Milkman](https://github.com/warmuuh/milkman) - Extensible alternative to Postman for crafting all kinds of requests, not only for gRPC, also http, sql etc.\n- [grpcmd-gui](https://grpc.md/gui) - A modern cross-platform desktop app and API client for gRPC development and testing.\n- [gRPCox](https://github.com/gusaul/grpcox) - Like Postman, but for gRPC. web based GUI Client for gRPC, extremely easy to use.\n- [MuninRPC](https://github.com/muninrpc/muninrpc) - Protobuf request and response testing application under the gRPC system.\n- [Delivery](https://github.com/kfwerf/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.\n- [(Yodelay.io)](https://github.com/oslabs-beta/Yodelay) - A browser GUI Making sure your outbound 🗣️ ‘yodelay’ returns the ‘IiiOoo’ 📣 that you expect.\n- [Wombat](https://github.com/rogchap/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.\n- [Protocall](https://protocall.dev) - A browser-based gRPC \u0026 protobuf API client.  Integrates with Github and automatically resolves all proto imports with no manual configuration.\n- [Grip](https://gripgrpc.dev) - Native macOS client for interacting with gRPC services\n- [ezy](https://github.com/getezy/ezy) - 🔥 Fully-featured GUI client for gRPC/gRPC-Web.\n- [Warthog](https://github.com/forest33/warthog) - A cross platform gRPC client. Input generation for all types, including nested and looped messages. Saving requests and servers.\n- [ptg](https://github.com/crossoverjie/ptg) - GUI gRPC client, it is also a performance testing tool.\n- [Kalisto](https://github.com/Kalisto-Application/kalisto) - Automate and test intricate gRPC API workflows with ease using JavaScript-based scripting\n\n\u003ca name=\"tools-test\"\u003e\u003c/a\u003e\n### Testing\n\n- [ghz](https://github.com/bojand/ghz) - Simple gRPC benchmarking and load testing tool inspired by hey and grpcurl.\n- [karate-grpc](https://github.com/karatelabs/karate-examples/blob/main/grpc) - Example of using [Karate](https://github.com/karatelabs/karate) to integrate and test gRPC.\n- [strest-grpc](https://github.com/BuoyantIO/strest-grpc) - A load tester for stress testing grpc intermediaries.\n- [hazana](https://github.com/emicklei/hazana) - A Go package for creating load test tooling. Supports gRPC.\n- [fortio](https://github.com/fortio/fortio) - A microservices (http, grpc) load testing library and tool from Istio project.\n- [grpc-swagger](https://github.com/grpc-swagger/grpc-swagger) - Debugging gRPC application with swagger-ui.\n- [grpc-tools](https://github.com/bradleyjkemp/grpc-tools) - A suite of gRPC debugging tools. Like Fiddler/Charles but for gRPC.\n- [jmeter-grpc-plugin](https://github.com/zalopay-oss/jmeter-grpc-plugin) - A plugin supports load test gRPC service with Jmeter.\n- [camouflage](https://github.com/testinggospels/camouflage) - Camouflage is a backend mocking tool for HTTP, gRPC and Websockets protocols.\n- [Mediator](https://github.com/ButterCam/Mediator) - Cross-platform GUI gRPC debugging proxy like charles but design for gRPC.\n- [grpc_bench](https://github.com/LesnyRumcajs/grpc_bench) - A suite of gRPC benchmarks for different technologies.\n- [grpcdump](https://github.com/rmedvedev/grpcdump) - Tool for capture and decode GRPC messages from ethernet traffic only for Linux\n- [nosymouse](https://nosymouse.io/) - Saas tool to functional, perfomance and secure testing gRPC\n- [Step CI](https://github.com/stepci/stepci) - Open-Source API Testing and Monitoring (now with gRPC support!)\n- [Microcks](https://github.com/microcks/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/))\n- [grpcmd-script](https://grpc.md/script) - A powerful framework for testing gRPC endpoints using JavaScript within a single binary executable\n- [Keploy](https://github/keploy/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))\n\n\n\n\u003ca name=\"tools-other\"\u003e\u003c/a\u003e\n### Other\n\n- [kafka-pixy](https://github.com/mailgun/kafka-pixy) - gRPC/REST proxy for Kafka\n- [grpc-proxy](https://github.com/mwitkow/grpc-proxy) - gRPC reverse proxy with the goal of making it easy to expose gRPC services over the internet\n- [ratelimit](https://github.com/lyft/ratelimit) - Go/gRPC service designed to enable generic rate limit scenarios from different types of applications\n- [ProfaneDB](https://gitlab.com/ProfaneDB/ProfaneDB) - A Protocol Buffers database with gRPC API, built in C++ on top of RocksDB\n- [danby](https://github.com/ericbets/danby) - A grpc proxy for the browser\n- [docker-protoc](https://github.com/namely/docker-protoc) - Dockerized protoc, grpc-gateway, and grpc_cli commands bundled with Google API libraries\n- [grpc-json-proxy](https://github.com/jnewmano/grpc-json-proxy) - A proxy which allows existing tools like Postman or curl to interact with gRPC servers\n- [protoc-gen-gotemplate](https://github.com/moul/protoc-gen-gotemplate) - Generic generator based on golang's template system\n- [grpc-http-proxy](https://github.com/mercari/grpc-http-proxy) - A reverse proxy server which translate JSON HTTP requests to gRPC calls based on protoreflect\n- [grpc-mate](https://github.com/gdong42/grpc-mate) - A dynamic proxy server that translates JSON HTTP requests into gRPC calls\n- [jawlb](https://github.com/joa/jawlb) - An unsophisticated grpclb load balancer implementation for Kubernetes and gRPC\n- [protoc-gen-hbs](https://github.com/gponsinet/protoc-gen-hbs) - Fast and easy protobuf generation with handlebars and some helpers\n- [grpcson](https://github.com/siyanew/grpcson) - An easy to use proxy which translates JSON HTTP requests to gRPC calls with web ui\n- [rk-grpc](https://github.com/rookie-ninja/rk-grpc) - Middleware and bootstrapper library for gRPC with logging, metrics, auth, tracing etc.\n- [PropaneDB](https://github.com/elan8/propanedb) - A Protocol Buffers database with gRPC API and Golang driver.\n- [APISIX](https://github.com/apache/apisix) - An api gateway that supports gRPC, HTTP(s) to gRPC and gRPC web request proxying.\n- [Zilla](https://github.com/aklivity/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.\n- [grpc-pentest-suite](https://github.com/nxenon/grpc-pentest-suite) - A collection of tools for pentesting gRPC-Web, including a Burp Suite extension for manipulating gRPC-Web payloads.\n- [sabledocs](https://github.com/markvincze/sabledocs) - A simple static documentation generator for Protobuf and gRPC contracts.\n- [limitador](https://github.com/Kuadrant/limitador) - Generic rate-limiter written in Rust exposing a gRPC service that implements the Envoy Rate Limit protocol (v3).\n\n\u003ca name=\"lang\"\u003e\u003c/a\u003e\n\n## Language-Specific\n\n\u003ca name=\"lang-go\"\u003e\u003c/a\u003e\n### Go\n- [go-kit gRPC](https://github.com/go-kit/kit/tree/master/transport/grpc) - [Go Kit](https://github.com/go-kit) with gRPC as transport\n- [gRPC over NATS](https://github.com/rapidloop/nrpc) - nRPC is an RPC framework like gRPC, but for NATS.\n- [grpc-web-devtools](https://github.com/SafetyCulture/grpc-web-devtools) - Chrome Browser extension to aid gRPC-Web development\n- [rpcx](https://github.com/smallnest/rpcx) - A RPC service framework based on net/rpc like alibaba Dubbo and weibo Motan\n- [grpc-proxy](https://github.com/mwitkow/grpc-proxy) - gRPC proxy is a Go reverse proxy that allows for rich routing of gRPC calls with minimum overhead\n- [lile](https://github.com/lileio/lile) - Easily create gRPC services in Go\n- [yarpc](https://github.com/yarpc/yarpc-go) - A message passing platform for Go, including support for gRPC\n- [promgrpc](https://github.com/piotrkowalczuk/promgrpc) - Prometheus instrumentation for gRPC based services\n- [protoreflect](https://github.com/jhump/protoreflect) - Reflection (Rich Descriptors) for Go Protocol Buffers\n- [grpchan](https://github.com/fullstorydev/grpchan) - Channels for gRPC: custom transports, such as in-process and HTTP 1.1\n- [grpcui](https://github.com/fullstorydev/grpcui) - Embed a gRPC web UI into a Go gRPC/HTTP server\n- [clay](https://github.com/utrack/clay) - Minimal server platform for gRPС+REST+Swagger APIs\n- [grpc-consul-resolver](https://github.com/mbobakov/grpc-consul-resolver) - Easy to use endpoints resolver for the services registered in the [Consul](https://www.consul.io/)\n- [kuberesolver](https://github.com/sercand/kuberesolver) - gRPC Load Balancer with Kubernetes resolver\n- [ttrpc](https://github.com/containerd/ttrpc) - GRPC for low-memory environments\n- [grapi](https://github.com/izumin5210/grapi) - 😮 A surprisingly easy API server and generator in gRPC and Go\n- [gripmock](https://github.com/tokopedia/gripmock) - gRPC Mock Server\n- [grpc-gateway-boilerplate](https://github.com/johanbrandhorst/grpc-gateway-boilerplate) - All the boilerplate you need to get started with writing grpc-gateway powered REST services in Go\n- [protoc-gen-struct-transformer](https://github.com/bold-commerce/protoc-gen-struct-transformer) - Transformation function generator for protocol buffers.\n- [cmux](https://github.com/soheilhy/cmux) - Connection multiplexer for GoLang: serve different services on the same port! Supports gRPC.\n- [go-grpc-channelz](https://github.com/rantav/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.\n- [goprotoc](https://github.com/jhump/goprotoc) - Library for writing protoc plugins in Go; also includes a pure-Go protoc replacement.\n- [gRPC for production](https://github.com/apssouza22/grpc-server-go) - A Golang project that provides the core requirements for a production-ready gRPC communication.\n- [protoc-gen-mock](https://github.com/carvalhorr/protoc-gen-mock) - A protoc plugin to generate gRPC mock services from proto definitions in Golang\n- [Pike](https://github.com/sashabaranov/pike) — Generate CRUD gRPC backends from single YAML description\n- [Mortar](https://github.com/go-masonry/mortar) - GO framework for building gRPC (and REST) web services with DI, Telemetry and more\n- [sqlc-grpc](https://github.com/walterwanderley/sqlc-grpc) - Generate gRPC/HTTP server (with metrics, tracing, swagger and grpcui) from SQL\n- [protoc-gen-fieldmask](https://github.com/idodod/protoc-gen-fieldmask) - A protoc plugin that generates fieldmask paths as static type properties of proto messages\n- [Thunder Framework](https://github.com/Raezil/Thunder) - A gRPC-Gateway-powered framework with Prisma, Kubernetes, and Go for scalable microservices.\n- [protoc-gen-go-mock](https://github.com/kw510/protoc-gen-go-mock) - A protoc plugin for generating minimal gRPC service mocks suitable for use in tests.\n- [gRPC over WebSocket](https://github.com/glerchundi/grpc-boomerang) - connect to a gRPC Server behind a firewall by using a pre-established WebSocket connection\n\n\u003ca name=\"lang-nodejs\"\u003e\u003c/a\u003e\n### Node.js\n- [Mali](https://github.com/malijs/mali) - A minimalistic gRPC microservice framework for Node.js\n- [grpc-caller](https://github.com/bojand/grpc-caller) - An improved Node.js gRPC client\n- [grpc-create-metadata](https://github.com/bojand/grpc-create-metadata) - Helper utility for creating gRPC `Metadata`\n- [grpc-create-error](https://github.com/bojand/grpc-create-error) - Utility function for creating `Errors` for gRPC responses\n- [grpc-error](https://github.com/bojand/grpc-error) - `GRPCError` class that wraps `create-grpc-error`\n- [grpc-inspect](https://github.com/bojand/grpc-inspect) - gRPC protocol buffer inspection utility\n- [Node.js Proto Files](https://github.com/googleapis/nodejs-proto-files) - All of the Google API's protocol buffer files\n- [grpc-errors](https://github.com/ortoo/grpc-errors) - A quick and easy way of generating errors for use with grpc\n- [grpc-dynamic-gateway](https://github.com/konsumer/grpc-dynamic-gateway) - Like grpc-gateway, but written in node and dynamic.\n- [node-protoc-plugin](https://github.com/konsumer/node-protoc-plugin) - Create protoc code-generation plugins easily in nodejs.\n- [grpc-promise](https://github.com/carlessistare/grpc-promise) - GRPC promisify module for all Request/Response types: standard and stream\n- [firecomm](https://github.com/firecomm/firecomm) - Feature library for gRPC-Node\n- [grpc-reflection-js](https://github.com/redhoyasa/grpc-reflection-js) – gRPC Reflection client for JS\n\n\u003ca name=\"lang-java\"\u003e\u003c/a\u003e\n### Java\n\n- [gax-java](https://github.com/googleapis/sdk-platform-java/tree/main/gax-java) - Google API Extensions for Java\n- [Armeria](https://github.com/line/armeria) - Asynchronous RPC/REST library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC\n- [grpc-spring-boot-starter](https://github.com/grpc-ecosystem/grpc-spring) - Spring Boot starter module for gRPC framework\n- [grpc-spring-boot-starter](https://github.com/LogNet/grpc-spring-boot-starter) Spring Boot starter module for gRPC framework from LogNet.\n- [grpc-java-contrib](https://github.com/salesforce/grpc-java-contrib) - Useful extensions for the grpc-java library\n- [hoverfly-java-grpc](https://mvnrepository.com/artifact/io.specto/hoverfly-java-grpc) - MITM proxy for recording and simulating gRPC services\n- [grpcmock](https://github.com/Fadelis/grpcmock) - A gRPC Java testing tool to easily mock endpoints of gRPC services for IT or Unit testing\n- [protoc-gen-java-optional](https://github.com/Fadelis/protoc-gen-java-optional) - A Java Protoc plugin extending generated java classes with null safe `setOrClear` and `getOptional` methods.\n- [Vert.x gRPC](https://vertx.io/docs/vertx-grpc/java) - 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.\n\n\u003ca name=\"lang-ruby\"\u003e\u003c/a\u003e\n### Ruby\n\n- [gruf](https://github.com/bigcommerce/gruf) - gRPC Ruby Framework\n- [gapic-generator-ruby](https://github.com/googleapis/gapic-generator-ruby) - Generates Ruby gRPC client libraries from protocol buffer definitions of an API.\n\n\u003ca name=\"lang-py\"\u003e\u003c/a\u003e\n### Python\n\n- [Bali](https://github.com/bali-framework/bali) - Simplify Cloud Native Microservices development base on FastAPI and gRPC.\n- [grpclib](https://github.com/vmagamedov/grpclib) - Pure-Python gRPC implementation, based on hyper-h2 project\n- [pytest-grpc](https://github.com/kataev/pytest-grpc) - pytest plugin which allow test gRPC services\n- [Fast-gRPC](https://github.com/OlegYurchik/fast-grpc) - The Python async micro framework for easy develop gRPC server \n- [grpcalchemy](https://github.com/GuangTianLi/grpcalchemy) - The Python micro framework for building gPRC application\n- [django-grpc](https://github.com/gluk-w/django-grpc) - Django application to build gRPC services with access to ORM, settings and everything else\n- [garuda](https://github.com/dhilipsiva/garuda) - Automagically Exposing Django ORM over gRPC for microservices written in any other languages\n- [django-grpc-framework](https://github.com/fengsp/django-grpc-framework) - A gRPC toolkit for Django inspired by djangorestframework\n- [grpc_requests](https://github.com/wesky93/grpc_requests) - GRPC for Humans! grpc reflection support client. you can request grpc just like REST(No need Stub!)\n- [betterproto](https://github.com/danielgtaylor/python-betterproto) - More pythonic gRPC based on grpclib and dataclasses\n\n\u003ca name=\"lang-cs\"\u003e\u003c/a\u003e\n### C#\n\n- [MagicOnion](https://github.com/neuecc/MagicOnion) - gRPC based HTTP/2 RPC Streaming Framework for .NET, .NET Core and Unity\n- [Grpc.Tools](https://www.nuget.org/packages/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.\n- [GrpcBrowser](https://github.com/thomaswormald/grpc-browser) - a web UI for interactively debugging all types of gRPC endpoints\n\n\u003ca name=\"lang-rust\"\u003e\u003c/a\u003e\n### Rust\n\n- [grpc-rs](https://github.com/pingcap/grpc-rs) - The gRPC library for Rust built on C Core library and futures\n- [tonic](https://github.com/hyperium/tonic) - A native gRPC client \u0026 server implementation with async/await support\n- [wtx](https://github.com/c410-f3r/wtx) - RFC7541 and RFC9113 implementation with built-in support for `gRPC` connections.\n\n\u003ca name=\"lang-hs\"\u003e\u003c/a\u003e\n### Haskell\n\n- [grpc-haskell](https://github.com/grpc/grpc-haskell) - gRPC library binding for Haskell\n\n\u003ca name=\"lang-erlang\"\u003e\u003c/a\u003e\n### Erlang\n\n- [Erlang grpc](https://github.com/bluehouse-technology/grpc) - Erlang library for gRPC\n- [grpcbox](https://github.com/tsloughter/grpcbox) - Erlang grpc client and server\n- [bert](https://github.com/synrc/bert) - Erlang Google Protobuf V3 generator from HRL files\n\n\u003ca name=\"lang-elixir\"\u003e\u003c/a\u003e\n### Elixir\n\n- [grpc-elixir](https://github.com/tony612/grpc-elixir) - The Elixir implementation of gRPC\n\n\u003ca name=\"lang-elm\"\u003e\u003c/a\u003e\n### Elm\n\n- [elm-protobuf](https://github.com/tiziano88/elm-protobuf) - Protoc plugin generating elm code from proto definitions\n\n\u003ca name=\"lang-ts\"\u003e\u003c/a\u003e\n### TypeScript\n\n- [ts-protoc-gen](https://github.com/improbable-eng/ts-protoc-gen) - Protoc Plugin for TypeScript Declarations\n- [protoc-gen-tstypes](https://godoc.org/github.com/tmc/grpcutil/protoc-gen-tstypes) - Configurable Protoc Plugin to generate TypeScript types.\n- [sisyphus.js](https://github.com/ButterCam/sisyphus-js) - gRPC runtime and compiler for Web Clients by HTTP transcoding. Recommend using with [Sisyphus](https://github.com/ButterCam/sisyphus) back-end framework.\n- [protoc-gen-grpc-gateway-ts](https://github.com/grpc-ecosystem/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.\n- [protobuf-ts](https://github.com/timostamm/protobuf-ts) - Protoc plugin and runtime for TypeScript. Generates gRPC server/client for Node.js, gRPC-Web/Twirp clients for browser, uses Fetch API.\n- [ts-proto](https://github.com/stephenh/ts-proto) - Transforms your .proto files into strongly-typed, idiomatic TypeScript files!\n- [grpc-js-typescript](https://github.com/badsyntax/grpc-js-typescript) - Examples of how to use gRPC with TypeScript \u0026 Node.js.\n- [nice-grpc](https://github.com/deeplay-io/nice-grpc) - gRPC library for Node.js and the Browser with modern API and middleware support.\n\n\u003ca name=\"lang-scala\"\u003e\u003c/a\u003e\n### Scala\n\n- [ScalaPB](https://scalapb.github.io/) - Protocol Buffer Compiler for Scala\n- [Akka-gRPC](https://developer.lightbend.com/docs/akka-grpc/current/) - Akka gRPC provides support for building streaming gRPC servers and clients on top of Akka Streams.\n- [Mu](https://higherkindness.github.io/mu/) - Mu RPC is a purely functional library for building RPC endpoint-based services with support for gRPC and HTTP/2\n- [fs2-grpc](https://github.com/typelevel/fs2-grpc) - gRPC implementation for FS2/cats-effect using netty\n- [http4s-grpc](https://github.com/http4s/http4s-grpc) - A pure Scala gRPC implementation! Use it with http4s Ember and deploy on JVM, Node.js, and Native.\n- [zio-grpc](https://github.com/scalapb/zio-grpc) - ScalaPB meets ZIO: write purely functional gRPC services and clients using ZIO\n\n\n\u003ca name=\"lang-dart\"\u003e\u003c/a\u003e\n### Dart\n\n- [grpc-dart](https://pub.dartlang.org/packages/grpc) - Protocol Buffer Compiler for Dart\n\n\u003ca name=\"lang-kotlin\"\u003e\u003c/a\u003e\n### Kotlin\n\n- [kroto-plus](https://github.com/marcoferrer/kroto-plus) - gRPC Coroutines Integration and Protobuf message DSL support\n- [grpc-kotlin](https://github.com/rouzwawi/grpc-kotlin) - A protoc plugin for generating native Kotlin bindings using coroutine primitives for gRPC services\n- [sisyphus](https://github.com/ButterCam/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.\n\n\u003ca name=\"lang-perl\"\u003e\u003c/a\u003e\n### Perl\n\n- [grpc-perl](https://github.com/joyrex2001/grpc-perl) - Experimental Perl gRPC library supporting grpc client\n\n### C++\n\u003ca name=\"lang-cpp\"\u003e\u003c/a\u003e\n\n- [qtgrpc](https://github.com/qt/qtgrpc) - gRPC and Protobuf generator and bindings for the Qt framework\n- [asio-grpc](https://github.com/Tradias/asio-grpc) - Asynchronous gRPC with [Boost.Asio](https://github.com/boostorg/asio) or [libunifex](https://github.com/facebookexperimental/libunifex)\n\n\u003ca name=\"lang-ballerina\"\u003e\u003c/a\u003e\n### Ballerina\n\n- [Ballerina gRPC](https://github.com/ballerina-platform/module-ballerina-grpc) - Ballerina library for gRPC\n- [Ballerina gRPC CLI](https://github.com/ballerina-platform/protoc-tools) - Ballerina gRPC CLI tool\n\n## Resources\n\n\u003ca name=\"res-tuts\"\u003e\u003c/a\u003e\n### Tutorials\n\n- [Getting Started with Microservices using Go, gRPC and Kubernetes](https://outcrawl.com/getting-started-microservices-go-grpc-kubernetes/)\n- [gRPC in Production](https://about.sourcegraph.com/blog/grpc-in-production-alan-shreve/)\n- [gRPC Go: Beyond the basics](https://blog.gopheracademy.com/advent-2017/go-grpc-beyond-basics/) - GopherAcademy article\n- [Building High Performance APIs In Go Using gRPC](http://www.agiratech.com/building-high-performance-apis-go-grpc/) - Small tutorial on building a simple API using gRPC and Go\n- [Bidirectional gRPC streaming for Go](https://rakyll.org/grpc-streaming/)\n- [How We Build gRPC Services At Namely](https://medium.com/namely-labs/how-we-build-grpc-services-at-namely-52a3ae9e7c35) - Blog article from Namely Labs\n- [Our experience designing and building gRPC services](https://blog.bugsnag.com/using-grpc-in-production/) - Blog series from Bugsnag on building a new Releases dashboard backend using gRPC\n- [Writing gRPC Interceptors in Go](https://medium.com/@shijuvar/writing-grpc-interceptors-in-go-bf3e7671fe48) - A simple tutorial on gRPC Interceptors\n- [An introduction to gRPC](https://devopedia.org/grpc)\n- [How we use gRPC to build a client/server system in Go](https://medium.com/pantomath/how-we-use-grpc-to-build-a-client-server-system-in-go-dd20045fa1c2) - A technical presentation on how to use gRPC (and Protobuf) to build a robust client/server system\n- [OpenCensus for Go gRPC developers](https://medium.com/@orijtech/opencensus-for-go-grpc-developers-7f3ee1ac3d6d) - 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).\n- [How to develop Go gRPC microservice with HTTP/REST endpoint, middleware, Kubernetes deployment, etc](https://medium.com/@amsokol.com/tutorial-how-to-develop-go-grpc-microservice-with-http-rest-endpoint-middleware-kubernetes-daebb36a97e9) - A series of blog posts for gRPC development using Go. [Source code](https://github.com/amsokol/go-grpc-http-rest-microservice-tutorial).\n- [GopherJS Client and gRPC Server](https://jbrandhorst.com/post/gopherjs-client-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/).\n- [The G-Unit Stack: Go, GraphQL, and gRPC](https://iheanyi.com/journal/2018/05/12/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).\n- [Envoy, gRPC, and Rate Limiting](https://venilnoronha.io/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\n- [Seamless Cloud-Native Apps with gRPC-Web and Istio](https://venilnoronha.io/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\n- [Backward and Forward Compatibility, Protobuf Versioning, Serialization](https://www.beautifulcode.co/backward-and-forward-compatibility-protobuf-versioning-serialization) - A small article on making gRPC API changes\n- [Node, gRPC, and Postgres](https://mherman.org/blog/node-grpc-postgres/) - This tutorial looks at how to implement an API with Node, gRPC, and Postgres.\n- [Building High Performance APIs In Go Using gRPC And Protocol Buffers](https://medium.com/@shijuvar/building-high-performance-apis-in-go-using-grpc-and-protocol-buffers-2eda5b80771b) - An introductory gRPC Go tutorial.\n- [Part 1: Demystifying gRPC](https://dev-state.com/posts/grpc_framework_1/) - A simple gRPC service with context cancelation and secure connection over SSL/TLS.\n- [Part 2: Demystifying gRPC](https://dev-state.com/posts/grpc_framework_2/) - Extend the service with gRPC streaming and Python backend.\n- [Part 3: Demystifying gRPC](https://dev-state.com/posts/grpc_framework_3/) - Add Unary and Stream gRPC Interceptors to a service and provide REST endpoints with grpc-gateway.\n- [gRPC in Microservices](https://milad.dev/posts/grpc-in-microservices/) - Tutorial on using gRPC in microservice architetures.\n- [gRPC and Protobuffer API Documentation with proto2asciidoc and code2asciidoc](https://blog.productsup.dev/2020/05/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.\n- [gRPC: Top 6 Things that Bite Newbies](https://charles-thayer.medium.com/grpc-top-6-things-that-bite-newbies-dfa740ffc67d) - A review of stumbling blocks for those moving to gRPC for the first time.\n- [A beginners guide to gRPC with Rust](https://dev.to/anshulgoyal15/a-beginners-guide-to-grpc-with-rust-3c7o)\n- [Writing a gRPC service with Ballerina](https://ballerina.io/learn/write-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.\n- [gRPC-web: Using gRPC in Your Front-End Application](https://grpcguide.com/grpc-web-frontend) - A tutorial on using gRPC-web in a frontend application.\n- [Load balancing gRPC in Kubernetes with a service mesh](https://www.useanvil.com/blog/engineering/load-balancing-grpc-in-kubernetes-with-istio) - Explains issues load balancing gRPC, then employs a service mesh (istio) to L7 load balance a gRPC service in Kubernetes.\n- [RPC Adoption and Working Architecture](https://www.xenonstack.com/insights/what-is-grpc) - Overview of gRPC and comparison with REST and WebSockets.\n- [Protobuf Editions explained](https://kreya.app/blog/protobuf-editions-explained/) - Detailed explanation of Protobuf editions\n\n\u003ca name=\"res-videos\"\u003e\u003c/a\u003e\n### Videos\n\n- [gRPC: Google's high-performance, open-source RPC framework](https://www.youtube.com/watch?v=sZx3oZt7LVg) - GothamGo 2015 by Sameer Ajmani\n- [Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 first](https://www.youtube.com/watch?v=kUz2zjkKxFg) - Devoxx by Mete Atamel\n- [gRPC: The Story of Microservices at Square](https://www.youtube.com/watch?v=-2sWDr3Z0Wo) - Apigee webcast\n- [Scalable Realtime Microservices with Kubernetes and gRPC](https://www.youtube.com/watch?v=xb8u2s7cxzg) - Mark Mandel @ Google\n- [Text to Speech server with gRPC and Kubernetes](https://www.youtube.com/watch?v=XaMr--wAuSI) - justforfunc #12\n- [GRPC Microservices 101](https://www.youtube.com/watch?v=-t57ZQZpjqs) - Google Developer Group Washington by Ray Tsang\n- [Efficient Microservices w/ Binary Protocol - gRPC 101](https://www.youtube.com/watch?v=RqK-mwh3-aY) - By Ray Tsang\n- [grpc: From Tutorial to Production](https://www.youtube.com/watch?v=7FZ6ZyzGex0) - GopherCon 2017 by Alan Shreve\n- [Scalable Microservices with gRPC, Kubernetes, and Docker](https://www.youtube.com/watch?v=xsIwYL-N4vI) - Node Interactive 2016 by Sandeep Dinesh\n- [Building Microservices w/gRPC \u0026 Kubernetes](https://www.youtube.com/watch?v=27swR9HACWU) - Philly ETE 2016 #49 by Kelsey Hightower\n- [Building high performance microservices with Kubernetes, Go, and gRPC](https://www.youtube.com/watch?v=YiNt4kUnnIM) - Google Cloud Next '17 by Andrew Jessup\n- [Modifying gRPC Services Over Time](https://www.youtube.com/watch?v=F2WYEFLTKEw) - Eric Anderson, Google at KubeCon + CloudNativeCon 2017 - Austin\n- [Next Generation Services at Indeed Using gRPC](https://www.youtube.com/watch?v=aQ2d9iLDR8Y) - Jaye Pitzeruse, Indeed.com at KubeCon + CloudNativeCon 2017 - Austin\n- [Generating Unified APIs with Protocol Buffers and gRPC](https://www.infoq.com/presentations/api-pb-grpc) - A video on Protocol Buffers, gRPC and Envoy from Lyft.\n- [Intro to gRPC: A Modern Toolkit for Microservice Communication](https://www.youtube.com/watch?v=RoXT_Rkg8LA) - A video from Twilio's Signal Conference\n- [gRPC and Go: Developing Efficient and Type-Safe Services](https://www.youtube.com/watch?v=J-NTfvYL_OE)\n- [Best Practices for (Go) gRPC Services](https://www.youtube.com/watch?v=Z_yD7YPL2oE)\n- [Creating GopherJS Apps with gRPC-Web](https://www.youtube.com/watch?v=R2HaxH7Et64) - At FOSDEM\n- [justforfunc #31: gRPC Basics](https://www.youtube.com/watch?v=uolTUtioIrc) - JustForFunc: Programming in Go series Episode 31 covering gRPC\n- [Efficient service communication with gRPC](https://www.youtube.com/watch?v=t9SUcf3Uwlg) - Talk at microXchg 2018 Berlin\n- [gRPC Java Course on Udemy](http://bit.ly/grpc-java-github) - Online Course (4 hours) that walks through several examples and implementations of gRPC using the Java Language\n- [HTTP and JSON for your gRPC Services - Michael Hamrah](https://www.youtube.com/watch?v=AmXo6tPGUdQ) - from Full Stack Fest\n- [Types All the Way Down — gRPC and Go Infrastructure at Lyft](https://www.youtube.com/watch?v=ZqPTKJu2QFk) - Christopher Burnett  at Istanbul Tech Talks\n- [Using gRPC for Long-lived and Streaming RPCs](https://www.youtube.com/watch?v=Naonb2XD_2Q) - Eric Anderson, Google at KubeCon North America 2018\n- [Intro: gRPC-Web](https://www.youtube.com/watch?v=RtyKEDZipsM) - Stanley Cheung \u0026 Wenbo Zhu, Google at at KubeCon North America 2018\n- [gRPC Loadbalancing on Kubernetes](https://www.youtube.com/watch?v=F2znfxn_5Hg) - Presentation at KubeCon Europe 2018. [Source](https://github.com/jtattermusch/grpc-loadbalancing-kubernetes-examples).\n- [Putting gRPC in Practice](https://www.youtube.com/watch?v=8KWmNw9jQ04) - Presentation on working with gRPC.\n- [The Story of Why We Migrate to gRPC and How We Go About It](https://www.youtube.com/watch?v=fMq3IpPE3TU) - Matthias Grüter, Spotify at KubeCon + CloudNativeCon Europe 2019\n- [Authentication and Security in gRPC Microservices](https://www.youtube.com/watch?v=_y-lzjdVEf0) - Jan Tattermusch, Google at KubeCon + CloudNativeCon Europe 2019\n- [JustFootball’s Journey to gRPC + Linkerd in Production](https://www.youtube.com/watch?v=AxPfa7Mp_WY) - Ben Lambert, \u0026 Kevin Lingerfelt at KubeCon + CloudNativeCon Europe 2019\n- [gRPC load balancing and Service Mesh](https://www.youtube.com/watch?v=FuXnfGHUZcU) - Vishal Powar, Google at KubeCon + CloudNativeCon Europe 2019\n- [Adopting gRPC: Overcoming Team and Technical Hurdles](https://www.youtube.com/watch?v=VNllljvhcnk) - GOTO 2019 • Adopting gRPC: Overcoming Team and Technical Hurdles • Josh Humphries\n- [Moving to gRPC Java](https://www.youtube.com/watch?v=vFBuvWVIcYQ) - Mya Pitzeruse at Indeed.com\n- [Building Microservices with Go](https://www.youtube.com/playlist?list=PLmD8u-IFdreyh6EUfevBcbiuCKzFk0EW_) - A series of tutorials for building microservices with Go, covers using gRPC ([source](https://github.com/nicholasjackson/building-microservices-youtube)).\n- [Building a gRPC application in Ballerina](https://www.youtube.com/watch?v=-wHFIPa1-3I\u0026t=1s) - A Demo on how to build a gRPC application in Ballerina at gRPC Meetup\n\n\u003ca name=\"res-slides\"\u003e\u003c/a\u003e\n### Slides\n\n- [gRPC Overview](http://www.slideshare.net/VarunTalwar4/grpc-overview) - An overview at gRPC: Talk at Slack by\nVarun Talwar\n- [gRPC Design and Implementation](https://www.slideshare.net/VarunTalwar4/grpc-design-and-implementation) - April 2016 talk at Stanford by Varun Talwar\n- [gRPC - boilerplate to high-performance scalable APIs](https://www.slideshare.net/AboutYouGmbH/robert-kubis-grpc-boilerplate-to-highperformance-scalable-apis-codetalks-2015) - code.talks 2015 by Robert Kubis\n- [HTTP2 and gRPC](https://www.slideshare.net/GuoJing8/http2-and-grpc) - A simple introduction about HTTP2 and gRPC by Xin Gong Chang\n- [gRPC and Microservices](https://www.slideshare.net/blinkingsquirrel/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\n- [gRPC and Microservices](https://github.com/jonog/talks/blob/master/src/grpc/grpc-presentation.md) - Golang Melbourne - June 2016 Go Hack Night by Jonathan Gomez\n- [Scalable Microservices with gRPC, Kubernetes, and Containers](https://speakerdeck.com/googlecloudplatform/scalable-microservices-with-grpc-kubernetes-and-containers-devfest-ukraine) - DevFest Ukraine\n- [OpenAPI and gRPC Side by-Side](https://www.slideshare.net/timburks/openapi-and-grpc-side-byside) - APIStrat Conference -\nTim Burks\n- [Go+Microservices at Mercari](https://talks.godoc.org/github.com/tcnksm/talks/2017/11/gocon2017/gocon2017.slide) - Taichi Nakashima at Go Conference 2017\n- [gRPC - RPC rebirth?](https://www.slideshare.net/LusBarbosa9/grpcrpc-rebirth) - Presentation about gRPC at the 23. NetPonto community meeting in Porto by Luís Barbosa\n\n\u003ca name=\"res-examples\"\u003e\u003c/a\u003e\n### Examples\n\n- [gifinator](https://github.com/GoogleCloudPlatform/gifinator) - A sample application demonstrating Kubernetes, gRPC, Go and cute Gophers demoed at Google GCP Next 2017\n- [Text to Speech server with gRPC and Kubernetes](https://github.com/campoy/justforfunc/tree/master/12-say-grpc) - justforfunc #12\n- [Multiplayer Simon Says - A Game using gRPC and Kubernetes](https://github.com/grpc-ecosystem/grpc-simon-says) - Sample app with Go server and clients using Node.js (on Arduino and web), and Java (Android and CLI)\n- [Go Microservices Example](https://github.com/harlow/go-micro-services) - HTTP up front, Protobufs in the rear\n- [Streaming RPC's using gRPC](https://github.com/ridha/grpc-streaming-demo) - A quick demo of bi-directional streaming RPC's using grpc, Go and Python\n- [gRPC Java Examples](https://github.com/saturnism/grpc-java-by-example) - A collection of useful/essential gRPC Java Examples\n- [gRPC/OpenCensus Demo](https://github.com/rakyll/opencensus-grpc-demo) - Export metrics and traces from gRPC servers and clients using Java, Go and Prometheus\n- [go-micro-services](https://github.com/harlow/go-micro-services) - An demonstration of Golang micro-services that expose a HTTP/JSON frontend and then leverages gRPC for inter-service communication\n- [Colossus](https://github.com/lucperkins/colossus) - An example multi-language gRPC microservice architecture built by Bazel and targeting Kubernetes\n- [coolstore-microservices](https://github.com/vietnam-devs/coolstore-microservices) - A containerized polyglot gRPC microservices based on .NET Core, Nodejs and more running on Istio\n- [gRPC Microservices with Go and Kubernetes](https://github.com/shuza/kubernetes-go-grpc) - A sample application use gRPC in microservice and deploy in kubernetes.\n- [Making a Multiplayer Game With Go and gRPC](https://mortenson.coffee/blog/making-multiplayer-game-go-and-grpc/) - gRPC game example in Go. [Source](https://github.com/mortenson/grpc-game-example).\n- [Detailed examples for Go](https://github.com/lixd/grpc-go-example) - A detailed gRPC example in Go.\n- [Envoy proxy as an API gateway for gRPC microservice](https://ekhabarov.com/post/envoy-as-an-api-gateway/) - 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)\n- [gRPC Ballerina service Example](https://ballerina.io/learn/by-example/#grpc-service) - A collection of simple gRPC service examples written in Ballerina\n- [gRPC Ballerina client Example](https://ballerina.io/learn/by-example/#grpc-client) - A collection of simple gRPC client examples written in Ballerina\n- [Go gRPC features examples](https://github.com/vladimirvivien/go-grpc) - A collection of gRPC and Go examples showcasing features of the framework\n- [Hello gRPC](https://github.com/feuyeux/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#.\n- [GCP - Online Boutique application rewritten in Ballerina](https://github.com/ballerina-guides/gcp-microservices-demo) - Online Boutique application rewritten in Ballerina\n- [gRPC Goat - An intentionally vulnerable gRPC Security Lab](https://github.com/rootxjs/grpc-goat) -  gRPC Goat is a \"Vulnerable by Design\" lab created to provide an interactive, hands-on playground for learning and practicing gRPC security. \n\n\u003ca name=\"res-misc\"\u003e\u003c/a\u003e\n### Miscellaneous\n\n- [gRPC with Load Balancer or Proxy or on AWS](https://gist.github.com/bojand/6a604f7e369d7c7d8c39eb77878a42c2) - Various notes on doing gRPC behind a load balancer or proxy or on AWS\n- [gRPC service upgrade, versioning](https://groups.google.com/forum/#!topic/grpc-io/LPsPg5ctQd4) - A short possibly useful discussion on gRPC service upgrade and versioning\n- [Packaging Generated Code for gRPC Services](https://blog.bugsnag.com/libraries-for-grpc-services/) - An article demonstrating a strategy on how to version and package gRPC libraries\n- [Migrating APIs from REST to gRPC at WePay](https://wecode.wepay.com/posts/migrating-apis-from-rest-to-grpc-at-wepay) - A blog post on migrating from REST to gRPC\n\n\u003ca name=\"proto\"\u003e\u003c/a\u003e\n## Protocol Buffers\n\n\u003ca name=\"proto-docs\"\u003e\u003c/a\u003e\n### Documentation\n\n- [Website](https://developers.google.com/protocol-buffers/) - Official website and documentation\n- [Third-Party Add-ons for Protocol Buffers](https://github.com/protocolbuffers/protobuf/blob/master/docs/third_party.md) - List of add-ons for Protocol Buffers in main github repository\n\n\u003ca name=\"proto-package-managers\"\u003e\u003c/a\u003e\n### Package Managers\n\n- [buffrs](https://github.com/helsing-ai/buffrs) – A modern package manager for protocol buffers and gRPC architectures.\n\n\u003ca name=\"proto-tools\"\u003e\u003c/a\u003e\n### Tools\n\n- [buf](https://buf.build) - Protobuf tool that includes linting and breaking change detection.\n  Allows many types of input including directly checking remote repositories and tarballs, and has a built-in compiler as well.\n- [prototools](https://github.com/sourcegraph/prototools) - Documentation generator \u0026 other tools for protobuf/gRPC.\n- [protoc-gen-apidocs](https://github.com/tmc/protoc-gen-apidocs) - Documentation generator plugin for protobuf/gRPC.\n- [protoc-gen-doc](https://github.com/pseudomuto/protoc-gen-doc) - Documentation generator plugin for Google Protocol Buffers\n- [Protoxygen](https://github.com/lisroach/Protoxygen) - [Doxygen](http://doxygen.nl) plugin to generate documentation for protobuf/gRPC\n- [openapi2proto](https://github.com/NYTimes/openapi2proto) - A tool for generating Protobuf v3 schemas and gRPC service definitions from OpenAPI specifications\n- [Wireshark Protobuf Dissector](https://github.com/128technology/protobuf_dissector) - A Wireshark Lua plugin for decoding Google protobuf packets. [Relevant PR and discussion](https://github.com/google/protobuf/issues/3303).\n- [protoc-gen-lint](https://github.com/ckaznocha/protoc-gen-lint) - A plug-in for Google's Protocol Buffers (protobufs) compiler to lint .proto files for style violations\n- [go-proto-validators](https://github.com/mwitkow/go-proto-validators) - Generate message validators from .proto annotations, used in `grpc_validator` Go gRPC middleware.\n- [protolock](https://github.com/nilslice/protolock) - Protocol Buffer companion tool to `protoc` and `git`. Track your .proto files and prevent changes to messages and services which impact API compatibilty.\n- [protoc-gen-map](https://github.com/jackskj/protoc-gen-map) - SQL data mapper framework for Protocol Buffers.\n- [api-linter](https://github.com/googleapis/api-linter) - A linter for APIs defined in protocol buffers.\n- [protoc-gen-struct-transformer](https://github.com/bold-commerce/protoc-gen-struct-transformer) - Transformation functions generator for Protocol Buffers.\n- [pbvm](https://github.com/ekalinin/pbvm) - Protocol Buffers Version Manager\n- [clang-format](https://clang.llvm.org/docs/ClangFormat.html) - Protocol Buffers formating tool\n  Can be used to format on save in editor such as [Visual studio code](https://marketplace.visualstudio.com/items?itemName=xaver.clang-format) or [IntelliJ](https://plugins.jetbrains.com/plugin/14004-protocol-buffer-editor).\n- [intellij-protobuf-plugin](https://github.com/devkanro/intellij-protobuf-plugin) - IntelliJ-based IDEs Protobuf Language Plugin that provides Protobuf language support.\n- [protolint](https://github.com/yoheimuta/protolint) - A pluggable linter and fixer to enforce Protocol Buffer style and conventions.\n- [Mouse Melon](https://mousemelon.dev) - A user-friendly Protocol Buffers data editor.\n- [Protovalidate](https://github.com/bufbuild/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.\n\n### Similar\n\n- [MessagePack](http://msgpack.org/index.html) - It's like JSON, but fast and small\n- [Thrift](https://thrift.apache.org/) - Thrift is an interface definition language and binary communication protocol\n- [Cap’n Proto](https://capnproto.org/) - Think Protocol Buffers, except faster\n- [FlatBuffers](https://google.github.io/flatbuffers/) - An efficient cross platform serialization library\n- [RSocket](http://rsocket.io/) - Application protocol providing Reactive Streams semantics\n- [Twirp](https://github.com/twitchtv/twirp) - A simple RPC framework with protobuf service definitions\n- [Greenpack](https://github.com/glycerine/greenpack) - Serialization format similar to MessagePack, but adds field versioning and type annotation\n\n## Archive\n\nTools and libraries that are no longer maintained.\n\n### Tools\n\n#### GUI\n\n- [letmegrpc](https://github.com/gogo/letmegrpc) - Generate a web form gui from a grpc specification\n- [omgRPC](https://github.com/troylelandshields/omgrpc) - A GUI client for interacting with gRPC services, similar to what Postman is for REST APIs\n- [BloomRPC](https://github.com/uw-labs/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\n- [Plumber](https://github.com/pashkatrick/Plumber) - Another one GUI for GRPC requests (reflection only)\n- [Fint](http://bytesmotion.com/fint) - Create, run, manage performance tests and functional tests cases for gRPC service in a single (commercial) tool\n\n#### Testing\n\n- [gatling-grpc](https://github.com/phiSgr/gatling-grpc) - A [Gatling](http://gatling.io/) stress test plugin for gRPC.\n\n### Language-Specific\n\n#### Go\n- [go-GRPC Micro](https://github.com/micro/go-grpc) - [Micro](https://github.com/micro) based gRPC framework for microservices\n- [grpc-web](https://github.com/improbable-eng/grpc-web) - gRPC Web implementation for Golang and TypeScript\n- [grpclb](https://github.com/bsm/grpclb) - External Load Balancing Service solution for gRPC written in Go\n- [go-microservice-helpers](https://github.com/google/go-microservice-helpers) - A collection of handy snippets that simplify creation of gRPC servers and clients\n- [proteus](https://github.com/src-d/proteus) - Generate .proto files from Go source code\n- [protoc-gen-cobra](https://github.com/fiorix/protoc-gen-cobra) - Command line tool generator for Go gRPC\n\n#### Node.js\n- [grpc-host-builder](https://github.com/litichevskiydv/grpc-host-builder) - Lightweight library for building gRPC services with server side interceptors support\n- [grpc-bus](https://github.com/paralin/grpc-bus) - Call gRPC services (even streams!) from the browser over any two-way socket to Node and soon Go\n- [grpc-web-gateway](https://github.com/dialogs/grpc-web-gateway) – HTTP \u0026 WebSocket proxy gateway for gRPC services\n\n#### Java\n\n- [reactive-grpc](https://github.com/salesforce/reactive-grpc) - Integrates reactive programming with grpc-java\n- [rejoiner](https://github.com/google/rejoiner) - Generates a GraphQL schema from gRPC microservices\n\n#### Rust\n\n- [grpc-rust](https://github.com/stepancheg/grpc-rust) - Rust implementation of gRPC\n- [tower-grpc](https://github.com/tower-rs/tower-grpc) A client and server gRPC implementation based on Tower. Deprecated in favour of tonic\n\n#### Kotlin\n\n- [gapic-generator-kotlin](https://github.com/googleapis/gapic-generator-kotlin) - Generates coroutine-based gRPC Kotlin client libraries from a protocol buffer description of an API\n- [grpc-kapt](https://github.com/google/grpc-kapt) - Annotation driven gRPC clients \u0026 servers in Kotlin with coroutines\n\n#### C++\n\n- [QtProtobuf](https://github.com/semlanik/qtprotobuf) - gRPC and Protobuf generator and bindings for the Qt framework\n\n### Protocol Buffers\n\n#### Tools\n\n- [prototool](https://github.com/uber/prototool) - Compile, lint, and format Protobuf files, and generate stubs for any lanuguage/plugin, along with Vim/IDE integration\n- [protoc-gen-validate](https://github.com/lyft/protoc-gen-validate) - Protoc plugin to generate polyglot message validators\n- [protoc-gen-map](https://github.com/jackskj/protoc-gen-map) - SQL data mapper framework for Protocol Buffers.\n- [GenDocu](https://gendocu.com) - gRPC Documentation and SDK generator as a Service.\n\n#### Similar\n\n- [gogoprotobuf](https://github.com/gogo/protobuf) - Fork of golang/protobuf with extra code generation features\n- [TChannel](https://github.com/uber/tchannel) - Network multiplexing and framing protocol for RPC\n\n## Contribute\n\nContributions welcome! Read the [contribution guidelines](contributing.md) first.\n\n## License\n\n[![CC BY 4.0](https://licensebuttons.net/l/by/4.0/88x31.png)](https://creativecommons.org/licenses/by/4.0/)\n\nThis work is licensed under a [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrpc-ecosystem%2Fawesome-grpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrpc-ecosystem%2Fawesome-grpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrpc-ecosystem%2Fawesome-grpc/lists"}