Remote Procedure Calls
Love using tRPC. Bling & PicoRPC are interesting too.
Links
- Twirp - Simple RPC framework with protobuf service definitions.
- RPCValet: NI-driven tail-aware balancing of µs-scale RPCs (2019)
- tarpc - RPC framework for Rust with a focus on ease of use.
- Simple GoRpc - RPC explained by writing simple RPC framework in 300 lines of pure Golang.
- Facebook Thrift - Serialization and RPC framework for service communication. (Paper)
- Thrift: The Missing Guide
- Haskell Thrift Compiler - Implementation of the Thrift spec that generates code in Haskell.
- NNG: Lightweight Messaging Library - Lightweight, broker-less library, offering a simple API to solve common recurring messaging problems, such as publish/subscribe, RPC-style request/reply, or service discovery.
- Remotely like a procedure call (2020)
- gorums - Framework for simplifying the design and implementation of fault-tolerant quorum-based protocols.
- Go Plugin System over RPC
- Loqui - Transport that implements a very simple framing protocol over a raw socket.
- Go Tools for Recording and Replaying RPCs
- RPC - Simple RPC style APIs with generated clients & servers.
- rpc-perf - Tool for benchmarking RPC services.
- Cloudflare support for gRPC (2020)
- qtalk - Minimal set of packages for several languages that achieve an opinionated but expressive way for programmers to get their programs to interact.
- libqi - NAOqi core framework. Middle-ware framework that provides RPC, type-erasure, cross-language interoperability, OS abstractions.
- smf - RPC system and code generation like gRPC, Cap n Proto, Apache Thrift, etc, but designed for microsecond tail latency.
- Cap'n Proto - Insanely fast data interchange format and capability-based RPC system. Think JSON, except binary. (Code)
- Deepr - Specification for invoking remote methods, deeply.
- rpc-bench - Benchmarking various RPC implementations.
- Writing an RPC From Scratch (2021)
- yarpc - Message passing platform for Go.
- webrpc - Schema-driven approach to writing backend services for modern Web apps and networks.
- Apache Dubbo - High-performance, Java-based open-source RPC framework.
- OpenRPC - Standard, programming language-agnostic interface description for JSON-RPC 2.0 APIs. (GitHub) (Spec) (Spec Code)
- TChannel - Network multiplexing and framing protocol for RPC. (Code)
- TChannel Go - Go implementation of a multiplexing and framing protocol for RPC calls.
- jsonrpc-proxy - Generic and extensible JSON-RPC proxy, supporting cache and load-balancing.
- rpc - JSONRPC server implementation with native WebSocket, based on jsonrpc.
- Don’t Let RPCs Constrain Your API (2021) (Tweet)
- Rony - Fast and Scalable RPC Framework. In Go.
- Ice - Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more.
- OpenRPC Generator - Multi-Component & Multi-Language Generators for OpenRPC.
- OCaml Cap'n Proto RPC library
- OpenRPC Typings - Tool to produce language-specific typings given an OpenRPC document.
- hRPC - Simple RPC system using protocol buffers over HTTP and WebSockets.
- hrpc-rs - Implementation of hRPC in Rust.
- Axon RPC - RPC over event streams. Can execute RPC calls like gRPC but this time, over event streams.
- SRPC - Simple RPC system based on top of Canary.
- A Critique of the Remote Procedure Call Paradigm - 30 years later
- tRPC Playground - Playground for running tRPC queries in the browser.
- A Critique of the Remote Procedure Call Paradigm (1988) (HN)
- eRPC - Efficient, extensible and easy-to-use RPC framework. Suitable for RPC, Microservice, Peer-to-Peer, IM, Game and other fields.
- Gravity - Full-stack RPC framework that provides end-to-end typesafe API with an enjoyable developer experience.
- Turbocharger - Autogenerated async RPC bindings that instantly connect a JS frontend to a Rust backend service via WebSockets and WASM.
- gnmic - gNMI CLI client that provides full support for Capabilities, Get, Set and Subscribe RPCs with collector capabilities.
- starpc - Streaming Protobuf RPC services over any two-way message channel.
- TwirpScript - Protobuf RPC framework for JavaScript and TypeScript.
- Volo - High-performance and strong-extensibility Rust RPC framework that helps developers build microservices.
- Seata-go - Simple Extensible Autonomous Transaction Architecture (Go version).
- webrpc - Powerful way to do RPC on the web.
- fRPC - Proto3-compatible RPC Framework that's designed from the ground up to belightweight, extensible, and extremely performant. (Code)
- ts-rest - RPC-like client and server helpers for a magical end to end typed experience.
- SPRC - High performance, low latency, lightweight enterprise-level RPC system. Supports Baidu bRPC, Tencent tRPC, thrift protocols.
- eRPC - Fast and general-purpose RPC library for datacenter networks. (Tweet)
- dudirekta - Transport-agnostic framework that allows exposing and calling functions on both clients and servers.
- TSRPC - TypeScript RPC framework with runtime type checking and binary serialization.
- Blue RPC - Simple but powerful RPC protocol that uses WebSockets and MessagePack.
- PicoRPC - Tiny RPC library and spec, inspired by JSON-RPC 2.0 and tRPC.
- bling - Framework agnostic transpilation utilities for client/server RPCs, env isolation, islands, module splitting, and more. (Tweet)
- UJRPC - Up to 100x Faster FastAPI. JSON-RPC with io_uring, SIMDJSON, and pure CPython bindings. (HN)
- brpc - Industrial-grade RPC framework using C++ Language.
- oneRPC - RPC library for the serverless and TypeScript era.
- Knit - GraphQL-like capabilities to services using Protocol Buffers, gRPC, and Connect. (API (Go Code)
- Prim+RPC - Easy-to-understand, type-safe, transport-agnostic RPC/IPC for JavaScript, supporting callbacks, batching, file uploads, custom serialization, and more.
- Async Call - Lightweight JSON RPC client & server.