Notable RPC implementations and analogues include:
Language-specific • Java's Remote Method Invocation (Java RMI) API provides similar functionality to standard Unix RPC methods. • Go provides a package rpc for implementing RPC, with support for asynchronous calls. • Modula-3's network objects, which were the basis for Java's RMI • RPyC implements RPC mechanisms in Python, with support for asynchronous calls. • Distributed Ruby (DRb) allows Ruby programs to communicate with each other on the same machine or over a network. DRb uses remote method invocation (RMI) to pass commands and data between processes. • Erlang is process-oriented and natively supports distribution and RPCs via message passing between nodes and local processes alike. •
Elixir builds on top of the Erlang. It allows process communication (Elixir/Erlang processes, not OS processes) of the same network out of the box via Agents and message passing. • Google's Rust RPC framework Tarpc lets developers define the structure of messages using Rust's structs and traits, rather than using protobuf.
Application-specific • Action Message Format (AMF) allows Adobe Flex applications to communicate with back-ends or other applications that support AMF. • Remote Function Call is the standard
SAP interface for communication between SAP systems. RFC calls a function to be executed in a remote system.
General •
NFS (Network File System) is one of the most prominent users of RPC • Open Network Computing RPC, by Sun Microsystems (also known as Sun RPC) •
D-Bus open source IPC program provides similar function to CORBA. • SORCER provides the API and exertion-oriented language (EOL) for a federated method invocation •
XML-RPC is an RPC protocol that uses XML to encode its calls and
HTTP as a transport mechanism. •
JSON-RPC is an RPC protocol that uses
JSON-encoded messages. •
JSON-WSP is an RPC protocol that is inspired from JSON-RPC. •
SOAP is a successor of XML-RPC and also uses XML to encode its HTTP-based calls. •
ZeroC's
Internet Communications Engine (Ice) distributed computing platform. •
Etch framework for building network services. •
Apache Thrift protocol and framework. •
CORBA provides remote procedure invocation through an intermediate layer called the
object request broker. •
Libevent provides a framework for creating RPC servers and clients. • Windows Communication Foundation is an application programming interface in the .NET framework for building connected, service-oriented applications. • Microsoft .NET Remoting offers RPC facilities for distributed systems implemented on the Windows platform. It has been superseded by
WCF. • The Microsoft DCOM uses MSRPC which is based on
DCE/RPC • The Open Software Foundation DCE/RPC Distributed Computing Environment (also implemented by Microsoft). •
Google Protocol Buffers (protobufs) package includes an interface definition language used for its RPC protocols open sourced in 2015 as gRPC. •
WAMP combines RPC and Publish-Subscribe into a single, transport-agnostic protocol. • Google Web Toolkit uses an asynchronous RPC to communicate to the server service. • Apache Avro provides RPC where client and server exchange schemas in the connection handshake and code generation is not required. ==See also==