GithubHelp home page GithubHelp logo

jdebnath21 / awesome-grpc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from grpc-ecosystem/awesome-grpc

1.0 0.0 0.0 255 KB

A curated list of useful resources for gRPC

License: Creative Commons Attribution 4.0 International

awesome-grpc's Introduction

Awesome gRPC Awesome

A curated list of useful resources for gRPC

Contents

Documentation

Community

Official Libraries and Tools

  • gRPC Core - C, C++, Ruby, Node.js, Python, PHP, C#, Objective-C
  • gRPC Java - The Java gRPC implementation. HTTP/2 based RPC
  • gRPC Node.js - gRPC for Node.js
  • gRPC Go - The Go language implementation of gRPC. HTTP/2 based RPC
  • gRPC Swift - The Swift language implementation of gRPC
  • gRPC Dart - The Dart language implementation of gRPC
  • gRPC C# - The C# language implementation of gRPC
  • gRPC Web - gRPC for Web Clients
  • gRPC Ecosystem - gRPC Ecosystem that complements gRPC
  • gRPC contrib - Known useful contributions around github
  • Homebrew gRPC - gRPC formulae repo for Homebrew
  • grpc_cli - gRPC CLI tool

Tools

CLI

  • polyglot - A gRPC command line client written in Java
  • grpcc - Node.js grpc command-line client
  • gcall - Simple Node.js gRPC command line interface
  • Evans - more expressive universal gRPC (CLI) client
  • grpcurl - Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers

GUI

  • letmegrpc - Generate a web form gui from a grpc specification
  • omgRPC (Deprecated) - A GUI client for interacting with gRPC services, similar to what Postman is for REST APIs
  • 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)
  • BloomRPC - A nice and simple GUI Client. Exploring and interacting with gRPC services has never been simpler, Inspired By GraphQL-Playground and Postman
  • gRPCox - Like Postman, but for gRPC. web based GUI Client for gRPC, extremely easy to use.
  • MuninRPC - Protobuf request and response testing application under the gRPC system.
  • Delivery - A simple electron app for gRPC that uses gRPCurl to autodetect all endpoints/methods and their request bodies, just modify the JSON body. Simplicity in mind.

Testing

  • ghz - Simple gRPC benchmarking and load testing tool inspired by hey and grpcurl
  • gatling-grpc - A Gatling stress test plugin for gRPC.
  • strest-grpc - A load tester for stress testing grpc intermediaries.
  • hazana - A Go package for creating load test tooling. Supports gRPC.
  • fortio - A microservices (http, grpc) load testing library and tool from Istio project.
  • grpc-swagger - Debugging gRPC application with swagger-ui.

Other

  • kafka-pixy - gRPC/REST proxy for Kafka
  • grpc-proxy - gRPC reverse proxy with the goal of making it easy to expose gRPC services over the internet
  • ratelimit - Go/gRPC service designed to enable generic rate limit scenarios from different types of applications
  • ProfaneDB - A Protocol Buffers database with gRPC API, built in C++ on top of RocksDB
  • danby - A grpc proxy for the browser
  • docker-protoc - Dockerized protoc, grpc-gateway, and grpc_cli commands bundled with Google API libraries
  • grpc-json-proxy - A proxy which allows existing tools like Postman or curl to interact with gRPC servers
  • protoc-gen-gotemplate - Generic generator based on golang's template system
  • grpc-http-proxy - A reverse proxy server which translate JSON HTTP requests to gRPC calls based on protoreflect
  • grpc-mate - A dynamic proxy server that translates JSON HTTP requests into gRPC calls

Language-Specific

Go

  • go-GRPC Micro - Micro based gRPC framework for microservices
  • go-kit gRPC - Go Kit with gRPC as transport
  • gRPC over NATS - nRPC is an RPC framework like gRPC, but for NATS.
  • grpc-web - gRPC Web implementation for Golang and TypeScript
  • 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
  • grpc-proxy - gRPC proxy is a Go reverse proxy that allows for rich routing of gRPC calls with minimum overhead
  • 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
  • grpcui - Embed a gRPC web UI into a Go gRPC/HTTP server
  • clay - Minimal server platform for gRPС+REST+Swagger APIs
  • grpc-consul-resolver - Easy to use endpoints resolver for the services registered in the Consul
  • kuberesolver - gRPC Load Balancer with Kubernetes resolver
  • ttrpc - GRPC for low-memory environments

Node.js

  • 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

Java

  • gax-java - Google API Extensions for Java
  • Armeria - Asynchronous RPC/REST library built on top of Java 8, Netty, HTTP/2, Thrift and gRPC
  • grpc-spring-boot-starter - Spring Boot starter module for gRPC framework
  • 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

Ruby

  • gruf - gRPC Ruby Framework

Python

  • 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

C#

  • MagicOnion - gRPC based HTTP/2 RPC Streaming Framework for .NET, .NET Core and Unity

Rust

  • grpc-rs - The gRPC library for Rust built on C Core library and futures
  • grpc-rust - Rust implementation of gRPC
  • tower-grpc - A client and server gRPC implementation based on Tower

Haskell

Erlang

  • Erlang grpc - Erlang library for gRPC
  • grpcbox - Erlang grpc client and server
  • bert - Erlang Google Protobuf V3 generator from HRL files

Elixir

Elm

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

TypeScript

Scala

  • ScalaPB - Protocol Buffer Compiler for Scala
  • Akka-gRPC - Akka gRPC provides support for building streaming gRPC servers and clients on top of Akka Streams.
  • Mu - Mu RPC is a purely functional library for building RPC endpoint-based services with support for gRPC and HTTP/2

Dart

  • grpc-dart - Protocol Buffer Compiler for Dart

Kotlin

  • kroto-plus - gRPC Coroutines Integration and Protobuf message DSL support

Perl

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

Resources

Tutorials

Videos

Slides

Examples

Miscellaneous

Protocol Buffers

Documentation

Tools

  • prototools - Documentation generator & other tools for protobuf/gRPC
  • protoc-gen-doc - Documentation generator plugin for Google Protocol Buffers
  • 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
  • protoc-gen-validate - Protoc plugin to generate polyglot message validators
  • 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.

Similar

  • gogoprotobuf - Fork of golang/protobuf with extra code generation features
  • MessagePack - It's like JSON, but fast and small
  • Thrift - Thrift is an interface definition language and binary communication protocol
  • TChannel - Network multiplexing and framing protocol for RPC
  • Cap’n Proto - Think Protocol Buffers, except faster
  • FlatBuffers - An efficient cross platform serialization library
  • RSocket - Application protocol providing Reactive Streams semantics
  • Twirp - A simple RPC framework with protobuf service definitions
  • Greenpack - Serialization format similar to MessagePack, but adds field versioning and type annotation

Contribute

Contributions welcome! Read the contribution guidelines first.

License

CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License.

awesome-grpc's People

Contributors

1015bit avatar 5ht avatar ahmetb avatar arvindpdmn avatar bojand avatar bymyslf avatar fchiron avatar glerchundi avatar guangtianli avatar gusaul avatar hungaikev avatar husainaloos avatar jchoffmann avatar jhump avatar kataev avatar kfwerf avatar litichevskiydv avatar lvgithub avatar marcoferrer avatar mbobakov avatar mhamrah avatar mit-mit avatar mjhea0 avatar moul avatar nilslice avatar piotrkowalczuk avatar sankate avatar simplesteph avatar srenatus avatar zhangjikai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.