What is rpc

Last updated: April 1, 2026

Quick Answer: RPC (Remote Procedure Call) is a technology that allows a program on one computer to request services from a program on another computer as if calling a local function. It simplifies distributed computing by hiding the complexity of network communication.

Key Facts

Overview

RPC (Remote Procedure Call) is a software communication protocol that enables a program running on one computer to execute code on another computer over a network. The key innovation of RPC is simplicity: from the programmer's perspective, calling a remote function looks identical to calling a local one. The underlying network communication is handled automatically, hiding complexity and allowing developers to build distributed systems more easily.

How RPC Works

When a program makes an RPC call, it sends a request across the network to another computer containing the name of the function to execute and its parameters. The remote computer receives this request, executes the function, and sends back the result. The calling program receives the response as if the function had executed locally. This process involves serialization (converting data to a transmittable format), network transmission, deserialization, execution, and returning results.

Advantages of RPC

RPC provides significant benefits for distributed systems:

Common RPC Technologies

XML-RPC was one of the earliest implementations, using XML to encode requests and responses. JSON-RPC is lighter-weight and more modern, using JSON format. gRPC is a modern, high-performance framework developed by Google that uses Protocol Buffers for efficient serialization. Each technology has trade-offs between simplicity, performance, and compatibility.

Real-World Applications

RPC is everywhere in modern computing. Microservices communicate through RPC calls. Blockchain networks like Ethereum use JSON-RPC for client-server communication. Cloud services provide RPC interfaces for accessing remote resources. Even your web browser uses similar concepts when fetching data from servers. Understanding RPC is essential for working with distributed systems, web services, and modern cloud infrastructure.

Related Questions

What is the difference between RPC and REST?

RPC focuses on calling remote functions, while REST focuses on accessing and manipulating resources through HTTP methods. REST is more web-native but RPC can be more efficient for certain applications.

What are the challenges with RPC?

Network latency, potential failures, and the complexity of handling errors across networks are significant challenges. RPC calls are slower than local calls and can fail unpredictably.

Is RPC used in web development?

Yes, many web services use RPC protocols. JSON-RPC is common in web applications, and APIs often use RPC-like patterns even if they don't strictly follow the RPC specification.

Sources

  1. Wikipedia - Remote Procedure Call CC-BY-SA-4.0
  2. JSON-RPC Official Specification Various open-source licenses