An open API service indexing awesome lists of open source software.

awesome-grpc

A curated list of useful resources for gRPC
https://github.com/grpc-ecosystem/awesome-grpc

Last synced: 17 days ago
JSON representation

Community

Documentation

Language-Specific

Ballerina

C#

C++

  • QtProtobuf - gRPC and Protobuf generator and bindings for the Qt framework
  • asio-grpc - Asynchronous gRPC with Boost.Asio or 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.

Dart

  • grpc-dart - Protocol Buffer Compiler for Dart

Elixir

Elm

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

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

Go

  • go-GRPC Micro - Micro based gRPC framework for microservices
  • go-kit gRPC - Go Kit with gRPC as transport
  • 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
  • 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
  • go-microservice-helpers - A collection of handy snippets that simplify creation of gRPC servers and clients
  • lile - Easily create gRPC services in Go
  • proteus - Generate .proto files from Go source code
  • protoc-gen-cobra - Command line tool generator for Go gRPC
  • gRPC over WebSocket - connect to a gRPC Server behind a firewall by using a pre-established WebSocket connection
  • yarpc - A message passing platform for Go, including support for gRPC
  • promgrpc - Prometheus instrumentation for gRPC based services
  • protoreflect - Reflection (Rich Descriptors) for Go Protocol Buffers
  • grpchan - Channels for gRPC: custom transports, such as in-process and HTTP 1.1
  • clay - Minimal server platform for gRPС+REST+Swagger APIs
  • grpc-consul-resolver - Easy to use endpoints resolver for the services registered in the Consul
  • kuberesolver - gRPC Load Balancer with Kubernetes resolver
  • ttrpc - GRPC for low-memory environments
  • grapi - 😮 A surprisingly easy API server and generator in gRPC and Go
  • gripmock - gRPC Mock Server
  • grpc-gateway-boilerplate - All the boilerplate you need to get started with writing grpc-gateway powered REST services in Go
  • protoc-gen-struct-transformer - Transformation function generator for protocol buffers.
  • cmux - Connection multiplexer for GoLang: serve different services on the same port! Supports gRPC.
  • go-grpc-channelz - A channelz UI for Golang. Channelz is an approved and already implemented proposal describing the inner state of gRPC connections/channels. go-grpc-channelz provides a simple UI for channelz for easy diagnosis.
  • goprotoc - Library for writing protoc plugins in Go; also includes a pure-Go protoc replacement.
  • gRPC for production - A Golang project that provides the core requirements for a production-ready gRPC communication.
  • protoc-gen-mock - A protoc plugin to generate gRPC mock services from proto definitions in Golang
  • Pike
  • Mortar - GO framework for building gRPC (and REST) web services with DI, Telemetry and more
  • sqlc-grpc - Generate gRPC/HTTP server (with metrics, tracing, swagger and grpcui) from SQL
  • protoc-gen-fieldmask - A protoc plugin that generates fieldmask paths as static type properties of proto messages
  • Thunder Framework - A gRPC-Gateway-powered framework with Prisma, Kubernetes, and Go for scalable microservices.
  • protoc-gen-go-mock - A protoc plugin for generating minimal gRPC service mocks suitable for use in tests.
  • gRPC for production - A Golang project that provides the core requirements for a production-ready gRPC communication.
  • gRPC over NATS - nRPC is an RPC framework like gRPC, but for NATS.

Haskell

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.
  • 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.
  • gax-java - Google API Extensions for Java
  • grpc-spring-boot-starter - Spring Boot starter module for gRPC framework

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/Google AIP support.

Node.js

Perl

  • grpc-perl - Experimental Perl gRPC library supporting grpc client

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!)

Ruby

  • gruf - gRPC Ruby Framework
  • gapic-generator-ruby - Generates Ruby gRPC client libraries from protocol buffer definitions of an API.

Rust

  • grpc-rust - Rust implementation of gRPC
  • tower-grpc - A client and server gRPC implementation based on Tower. Deprecated in favour of tonic
  • tonic - A native gRPC client & server implementation with async/await support
  • 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

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
  • Akka-gRPC - Akka gRPC provides support for building streaming gRPC servers and clients on top of Akka Streams.
  • 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

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 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.
  • sisyphus.js - gRPC runtime and compiler for Web Clients by HTTP transcoding. Recommend using with Sisyphus back-end framework.

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

Protocol Buffers

Documentation

Package Managers

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
  • gogoprotobuf - [[Deprecated] Fork of golang/protobuf with extra code generation features
  • TChannel - Network multiplexing and framing protocol for RPC
  • Twirp - A simple RPC framework with protobuf service definitions
  • Greenpack - Serialization format similar to MessagePack, but adds field versioning and type annotation

Tools

  • clang-format - Protocol Buffers formating tool
  • Visual studio code - protocol-buffer-editor).
  • GenDocu - gRPC Documentation and SDK generator as a Service.
  • 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 plugin to generate documentation for protobuf/gRPC
  • openapi2proto - A tool for generating Protobuf v3 schemas and gRPC service definitions from OpenAPI specifications
  • Wireshark Protobuf Dissector - A Wireshark Lua plugin for decoding Google protobuf packets. Relevant PR and discussion.
  • protoc-gen-lint - A plug-in for Google's Protocol Buffers (protobufs) compiler to lint .proto files for style violations
  • 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.
  • 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.

Resources

Examples

Miscellaneous

Slides