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: 16 days ago
JSON representation

  • Community

  • Documentation

  • Language-Specific

    • Ballerina

    • 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
    • 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.
    • 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](https://github.com/micro) based gRPC framework for microservices
      • go-kit gRPC - [Go Kit](https://github.com/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](https://www.consul.io/)
      • 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](https://aip.bybutter.com/127)/[Google AIP](https://aip.bybutter.com) 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](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.
      • sisyphus.js - gRPC runtime and compiler for Web Clients by HTTP transcoding. Recommend using with [Sisyphus](https://github.com/ButterCam/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](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.
      • 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