All Projects → itsksaurabh → Go Grpc Examples

itsksaurabh / Go Grpc Examples

Licence: mit
This repo contains examples and implementations of different types of GRPC services and APIs using Golang.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Go Grpc Examples

Go Micro Boilerplate
The boilerplate of the GoLang application with a clear microservices architecture.
Stars: ✭ 147 (-18.33%)
Mutual labels:  grpc, rpc, protobuf, protocol-buffers, example
Brpc Java
Java implementation for Baidu RPC, multi-protocol & high performance RPC.
Stars: ✭ 647 (+259.44%)
Mutual labels:  grpc, rpc, protobuf
Buf
A new way of working with Protocol Buffers.
Stars: ✭ 3,328 (+1748.89%)
Mutual labels:  grpc, protocol-buffers, protobuf
Grpc
An Elixir implementation of gRPC
Stars: ✭ 858 (+376.67%)
Mutual labels:  grpc, rpc, protobuf
Kroto Plus
gRPC Kotlin Coroutines, Protobuf DSL, Scripting for Protoc
Stars: ✭ 400 (+122.22%)
Mutual labels:  grpc, protobuf, protocol-buffers
Protobuf
[Looking for new ownership] Protocol Buffers for Go with Gadgets
Stars: ✭ 4,998 (+2676.67%)
Mutual labels:  grpc, protobuf, protocol-buffers
Rpc Thunderdome
A comparison between Proteus RPC and other commonly used RPC frameworks
Stars: ✭ 22 (-87.78%)
Mutual labels:  grpc, rpc, protobuf
Rpcx Examples
examples for the latest rpcx
Stars: ✭ 256 (+42.22%)
Mutual labels:  rpc, example, examples
Protobuf
Protocol Buffers - Google's data interchange format
Stars: ✭ 52,305 (+28958.33%)
Mutual labels:  rpc, protobuf, protocol-buffers
Protodot
transforming your .proto files into .dot files (and .svg, .png if you happen to have graphviz installed)
Stars: ✭ 107 (-40.56%)
Mutual labels:  grpc, protobuf, protocol-buffers
Twirp
PHP port of Twitch's Twirp RPC framework
Stars: ✭ 108 (-40%)
Mutual labels:  rpc, protobuf, protocol-buffers
Flatbuffers
FlatBuffers: Memory Efficient Serialization Library
Stars: ✭ 17,180 (+9444.44%)
Mutual labels:  grpc, rpc, protobuf
Cmakeprotosgrpc
gRPC + protobuf using CMake example
Stars: ✭ 137 (-23.89%)
Mutual labels:  grpc, protobuf, example
Prototool
Your Swiss Army Knife for Protocol Buffers
Stars: ✭ 4,932 (+2640%)
Mutual labels:  grpc, protobuf, protocol-buffers
Yarpc Go
A message passing platform for Go
Stars: ✭ 285 (+58.33%)
Mutual labels:  grpc, rpc, protobuf
Protoreflect
Reflection (Rich Descriptors) for Go Protocol Buffers
Stars: ✭ 651 (+261.67%)
Mutual labels:  grpc, protobuf, protocol-buffers
grpc-chat
Simple Chat Server/Client implemented with gRPC
Stars: ✭ 107 (-40.56%)
Mutual labels:  protobuf, protocol-buffers, grpc
tsrpc
A TypeScript RPC framework, with runtime type checking and serialization, support both HTTP and WebSocket. It is very suitable for website / APP / games, and absolutely comfortable to full-stack TypeScript developers.
Stars: ✭ 866 (+381.11%)
Mutual labels:  protobuf, grpc, rpc
Protoc Gen Struct Transformer
Transformation functions generator for Protocol Buffers.
Stars: ✭ 105 (-41.67%)
Mutual labels:  grpc, protobuf, protocol-buffers
Protoeasy Go
Simpler usage of protoc. Deprecated.
Stars: ✭ 129 (-28.33%)
Mutual labels:  grpc, protobuf, protocol-buffers

go-gRPC-examples

Go Report Card MIT License

This repo contains examples and implementations of different types of GRPC services and APIs using Golang.

What is GRPC ?

gRPC ( gRPC Remote Procedure Calls ) is an open source remote procedure call ( RPC ) system initially developed at Google in 2015. It uses HTTP/2 for transport, Protocol Buffers as the interface description language, and provides features such as authentication, bidirectional streaming and flow control, blocking or nonblocking bindings, and cancellation and timeouts. It generates cross-platform client and server bindings for many languages. Most common usage scenarios include connecting services in microservices style architecture and connect mobile devices, browser clients to backend services.

Types of RPCs

Unary RPC

The simplest type of RPC where the client sends a single request and gets back a single response.

Once the client calls a stub method, the server is notified that the RPC has been invoked with the client’s metadata for this call, the method name, and the specified deadline if applicable. The server can then either send back its own initial metadata (which must be sent before any response) straight away, or wait for the client’s request message. Which happens first, is application-specific. Once the server has the client’s request message, it does whatever work is necessary to create and populate a response. The response is then returned (if successful) to the client together with status details (status code and optional status message) and optional trailing metadata. If the response status is OK, then the client gets the response, which completes the call on the client side.

Check examples : Unary

Server streaming RPC

A server-streaming RPC is similar to a unary RPC, except that the server returns a stream of messages in response to a client’s request. After sending all its messages, the server’s status details (status code and optional status message) and optional trailing metadata are sent to the client. This completes processing on the server side. The client completes once it has all the server’s messages.

Check examples : Server streaming

Client streaming RPC

A client-streaming RPC is similar to a unary RPC, except that the client sends a stream of messages to the server instead of a single message. The server responds with a single message (along with its status details and optional trailing metadata), typically but not necessarily after it has received all the client’s messages.

Check examples : Client streaming

Bidirectional streaming RPC

In a bidirectional streaming RPC, the call is initiated by the client invoking the method and the server receiving the client metadata, method name, and deadline. The server can choose to send back its initial metadata or wait for the client to start streaming messages.

Client- and server-side stream processing is application specific. Since the two streams are independent, the client and server can read and write messages in any order. For example, a server can wait until it has received all of a client’s messages before writing its messages, or the server and client can play “ping-pong” – the server gets a request, then sends back a response, then the client sends another request based on the response, and so on.

Check examples : Bidirectional streaming

Maintainer

Kumar Saurabh

License

MIT © Kumar Saurabh

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].