Home

RPCs

RPC stands for Remote Procedure Call, a method for invoking procedures on a remote machine as if they were local. It enables a program to request a service from another address space, typically across a network, without embedding explicit network communication logic into the caller.

In a typical RPC, the interface is defined in an interface definition language. Client and server stubs

RPC implementations vary in data encoding and transport. Classic systems use compact binary protocols; newer variants

Key considerations include call semantics (synchronous vs asynchronous), error handling, retries, and idempotency. Security concerns cover

RPC is often contrasted with RESTful APIs, which emphasize resource manipulation over remote procedure invocation. RPC

Notable families and implementations include ONC RPC, DCE/RPC, XML-RPC, JSON-RPC, Apache Thrift, and Google gRPC, reflecting

are
generated
from
this
definition.
The
client
calls
a
local
stub,
which
marshals
the
arguments
and
sends
a
request
to
the
server.
The
server
unmarshals
parameters,
executes
the
procedure,
and
returns
the
result
to
the
client
through
the
stub.
include
JSON-RPC
and
XML-RPC
over
HTTP,
and
gRPC
over
HTTP/2
using
Protocol
Buffers.
Others
include
Apache
Thrift
and
DCE/RPC.
Some
support
unary
calls
only,
others
offer
streaming
and
bidirectional
communication.
authentication,
authorization,
and
encryption,
typically
via
TLS.
Performance
aspects
include
serialization
efficiency,
multiplexing,
and
connection
management.
can
provide
strong
typing,
compact
payloads,
and
efficient
communication
for
tightly
coupled
services.
It
is
widely
used
in
microservices,
distributed
systems,
and
high-performance
computing
contexts.
a
long
history
of
RPC
design
across
different
ecosystems.