Generated by GPT-5-mini| JSON-RPC | |
|---|---|
| Name | JSON-RPC |
| Paradigm | Remote procedure call |
| Developer | Douglas Crockford et al. |
| Initial release | 2005 |
| Typing | Dynamic |
| License | Protocol specification |
JSON-RPC
JSON-RPC is a lightweight remote procedure call protocol that uses JavaScript-derived JSON for message encoding and is designed for simplicity and extensibility. It is used across diverse systems involving Mozilla, Microsoft, Google, Apple Inc., and Facebook in tools, libraries, and services, and plays a role alongside protocols like SOAP, gRPC, and XML-RPC. The protocol is employed in contexts ranging from web browsers influenced by Netscape and Brendan Eich to server ecosystems shaped by Linus Torvalds and Ken Thompson.
JSON-RPC defines a minimal set of data structures for requests, responses, and notifications that allow a client to invoke procedures on a remote server. Implementations appear in projects associated with Apache Software Foundation, Red Hat, Canonical (company), Ubuntu, and Debian, and are used in tooling from GitHub, GitLab, Atlassian, and Bitbucket. The protocol's simplicity has encouraged integration in environments influenced by Oracle Corporation, IBM, Intel, ARM Holdings, and NVIDIA.
The specification mandates message objects with members such as "jsonrpc", "method", "params", and "id" to represent version, procedure name, parameters, and correlation identifiers. Adoptors in industrial settings like Siemens, Bosch, General Electric, Honeywell International, and Schneider Electric often map these fields to internal APIs and message brokers such as RabbitMQ, Apache Kafka, ZeroMQ, ActiveMQ, and Redis. Tooling vendors including JetBrains, Eclipse Foundation, Oracle Corporation, SAP SE, and Salesforce provide integrations and extensions that adapt the base specification to enterprise workflows.
Messages are encoded in JSON types: objects, arrays, strings, numbers, booleans, and null. Language bindings exist for C, C++, C#, Java, JavaScript, Python, Ruby, PHP, Go (programming language), Rust (programming language), Swift (programming language), and Kotlin. Projects from Mozilla Foundation, W3C, IETF, ICANN, and Unicode Consortium inform character encoding and serialization practices used by libraries in ecosystems maintained by Google, Microsoft, Apple Inc., Samsung, and LG Corporation.
Transport is unspecified in the core spec, enabling use over HTTP, WebSocket, TCP/IP, UDP, Serial (communication), and message queue systems like AMQP. Deployments leverage infrastructure from cloud providers such as Amazon Web Services, Microsoft Azure, Google Cloud Platform, IBM Cloud, and Alibaba Cloud to route JSON-RPC messages alongside protocols implemented in NGINX, Apache HTTP Server, HAProxy, Envoy (software), and Traefik. Integration with Kubernetes, Docker, VMware, OpenStack, and Hyper-V facilitates containerized and virtualized service architectures.
Notable implementations exist in ecosystems maintained by Node.js Foundation, Python Software Foundation, Ruby on Rails, PHP Group, Eclipse Foundation, and language maintainers like Oracle Corporation for Java and Google for Go. Libraries from organizations such as JetBrains, HashiCorp, MongoDB, Inc., Redis Labs, and Elastic NV embed JSON-RPC client and server components. Community projects on platforms like GitHub, GitLab, SourceForge, Bitbucket, and Launchpad provide diverse adapters and tooling.
Because the core protocol lacks built-in authentication, common deployments use TLS/SSL provided by Let's Encrypt, DigiCert, Entrust, Comodo, and GlobalSign combined with authentication schemes from OAuth, OpenID Connect, SAML, Kerberos, and LDAP. Security analysis references work from MITRE, NIST, OWASP, ENISA, and CERT inform best practices for input validation, rate limiting, and secure serialization. Enterprise operators such as Cisco Systems, Palo Alto Networks, Fortinet, Check Point Software Technologies, and Juniper Networks apply network-level controls when exposing JSON-RPC endpoints.
The protocol emerged in the mid-2000s alongside the rise of AJAX and AJAX-driven interfaces pioneered by companies like Google and Yahoo!. Early influencers include Douglas Crockford, whose advocacy for JSON shaped adoption across projects by Mozilla, Netscape, and Sun Microsystems. Subsequent versions and community drafts have been discussed in forums and repositories hosted by GitHub, IETF, W3C, Stack Overflow, and Reddit, with adoption in products from Microsoft, Apple Inc., Google, Amazon.com, and Facebook reflecting iterative evolution influenced by large technology vendors.
Category:Application layer protocols