Skip to content

Remote Procedure Call (RPC)

September 29, 2023
August 2, 2018

web-socket

Remote procedure call - Wikiwand
Usually an interface description language (IDL) is used to define the data sent over the wire. The IDL that can usually generate bindings for multiple languages.

Understanding RPC (tour of API protocols, gRPC nodejs walkthrough, and Apache Arrow Flight)
A Brief History of API: RPC, REST, GraphQL, tRPC - DEV Community 👩‍💻👨‍💻

Message queues can be used for RPC calls.

message-queue

nanomsg and zeromq's REQREP can also be used for RPC

zerorpc

zerorpc MessagePack + ZeroMQ
zerorpc Org
Build reliable, traceable, distributed systems with ZeroMQ - YouTube

tRPC

can be embedded in Next.js

nextjs#T3 App

tRPC - Move Fast and Break Nothing. End-to-end typesafe APIs made easy. | tRPC uses zod
Awesome tRPC Collection | tRPC

Let's Learn tRPC!
Let's Learn tRPC! - YouTube
Build a full-stack TypeScript app using tRPC and React - LogRocket Blog
Chris Bautista: Making typesafe APIs easy with tRPC - YouTube

First Look at Create T3 App w/ Christopher Ehrlich - YouTube
How tRPC really works - YouTube
Advanced tRPC - Callers, functions, and gSSP - YouTube

Is GraphQL DEAD?? tRPC VS GQL - YouTube

jlalmes/trpc-openapi: OpenAPI support for tRPC 🧩

gRPC

grpc - grpc.io
Guides | gRPC
grpc/CONCEPTS.md at master · grpc/grpc

grpc Org
gRPC - Wikiwand
A high performance, open source, general RPC framework that puts mobile and HTTP/2 first.

gRPC vs REST: Understanding gRPC, OpenAPI and REST and when to use them in API design | Google Cloud Blog
When to use gRPC vs GraphQL - Stack Overflow Blog
Take a REST with HTTP-2, Protobufs, and Swaggerquay
Google's gRPC: A Lean and Mean Communication Protocol for Microservices - The New Stack
Heres why you should use gRPC for everything » André Snede Kock
Build simple gRPC server with Go. What is grpc | by Anar | Jan, 2022 | Towards Dev

gRPC Crash Course - Modes, Examples, Pros & Cons and more - YouTube 2020-02 Node.js
Intro to gRPC: A Modern Toolkit for Microservice Communication - YouTube 2017-05
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 first (M.Atamel, R.Tsang) - YouTube 2017-06

Exploring The gRPC Framework for Building Microservices | Nordic APIs |
Effectively communicate between Microservices – ITNEXT TL;DR: Use gRPC
Tensorflow serving: REST vs gRPC – Avidan Eran – Medium REST is faster for small data payload

Introducing gRPC Support with NGINX 1.13.10 - NGINX

gRPC Ecosystem

hyperium/tonic: A native gRPC client & server implementation with async/await support. Rust
gRPC in Easy Samples for C#, JavaScript and Python - CodeProject

Tips and tricks

bradleyjkemp/grpc-tools: A suite of gRPC debugging tools. Like Fiddler/Charles but for gRPC.

Using gRPC in Production -- connection keepalive | Meng Xuan Xia
Enabling connection keepalive? · Issue #154 · grpc/grpc-node
How to test keepalive options? · Issue #706 · grpc/grpc-node

Container

Moving k8s communication to gRPC
Load-balancing a gRPC service using Docker

Web

grpc/grpc-web: gRPC for Web Clients
gRPC-Web: Moving past REST+JSON towards type-safe Web APIs - Improbable
gRPC-Web is going GA - Cloud Native Computing Foundation
gRPC-Web for .NET now available | ASP.NET Blog
Microsoft Releases gRPC-Web for .NET

gRPC-Gateway | gRPC-Gateway Documentation Website
grpc-ecosystem/grpc-gateway: gRPC to JSON proxy generator following the gRPC HTTP spec
An all-in-one guide to gRPC-Gateway - LogRocket Blog

How to use gRPC-web with React
Ditching REST with gRPC-web and Envoy - The Startup - Medium

Go

Go | gRPC
grpc/grpc-go: The Go language implementation of gRPC. HTTP/2 based RPC
grpc package - google.golang.org/grpc - pkg.go.dev

Implementing gRPC service in Golang – Kurio Toolbox
[Tutorial, Part 1] How to develop Go gRPC microservice with HTTP/REST endpoint, middleware…
[Tutorial, Part 2] How to develop Go gRPC microservice with HTTP/REST endpoint, middleware…
[Tutorial, Part 3] How to develop Go gRPC microservice with HTTP/REST endpoint, middleware…

Python and Go : Part I - gRPC
Python and Go : Part II - Extending Python With Go
Python and Go : Part III - Packaging Python Code
Python and Go : Part IV - Using Python in Memory

Python

Python | gRPC
Welcome to gRPC Python’s documentation! — gRPC Python documentation

Implementing gRPC server using Python - Towards Data Science
Python Microservices With gRPC – Real Python

Node

Node | gRPC
grpc/grpc-node: gRPC for Node.js
Documentation Namespace: grpc

grpc/examples/node · grpc/grpc
badsyntax/grpc-js-typescript: Generate gRPC TypeScript definitions for use with gRPC (@grpc/grpc-js).

carlessistare/grpc-promise: GRPC promisify module for all Request/Response types: standard and stream
nicolaspearson/grpc.boom: A gRPC implementation of the awesome Boom library to help create gRPC-friendly error objects

Building gRPC Service Server Note CRUD API with node.js

C

C# | gRPC
grpc/grpc-dotnet: gRPC for .NET
Namespace Grpc.Core | gRPC for .NET

The future of gRPC in C# belongs to grpc-dotnet | gRPC
Introduction to gRPC on .NET | Microsoft Docs
Create a .NET Core gRPC client and server in ASP.NET Core | Microsoft Docs

Rust

hyperium/tonic: A native gRPC client & server implementation with async/await support.

RSocket

RSocket
RPC Thunder Dome – Netifi – Medium
Give REST a Rest with RSocket

Differences between gRPC and RSocket - Netifi - Medium

RSocket: Reactive Streaming Service Networking with Ryland Degnan - Software Engineering Daily

Scuttlebutt

Secure Scuttlebutt Consortium
The definitive guide to Secure Scuttlebutt – clebertech-en – Medium
Secure Scuttlebutt - Scuttlebot
Scuttlebutt Protocol Guide
ssbc/scuttlebutt-guide: A collection of links to known resources!

Scuttlebutt · GitBook Patchwork client

Patchwork is a user interface for displaying messages from the distributed database (Scuttlebot) to the user, and to allow the user to add new messages. The underlying protocol supports arbitrary message types, Patchwork exposes a UI for interacting with a subset of them. Anyone could write and use other UIs while still contributing to the same database. Patchbay for example is a more developer-centric frontend.

Scuttlebot peer-to-peer log store used as a database, identity provider, and messaging system
dominictarr/sbot-web

TARS

TARS,rpc framework by tencent
TarsCloud/Tars: Tars is a highly performance rpc framework based on naming service using tars protocol and provides a semi-automatic operation platform.

Dubbo

RPC framework created by Alibaba.

DUBBO
dubbo (@dubbo) on GitBook · GitBook

alibaba/dubbo: Dubbo is a high-performance, java based, open source RPC framework

ICE

GPLv2

Internet Communications Engine - Wikiwand
ZeroC - Network Your Software

JSON-RPC

JSON-RPC
simple is better - JSON-RPC

SOAP

SOAP - Wikiwand
[How to Perform SOAP Requests With Node.js - Better Programming - Medium](https://medium.com/better-programming/how