awesome-json-rpc
Curated list of JSON-RPC resources.
Contents
- What is JSON-RPC?
- Official
- Libraries
- Framework Integrations
- Tools
- Interface Description
- Uses of JSON-RPC
What is JSON-RPC?
JSON-RPC is a remote procedure call protocol used by microservices, IoT and cryptocurrencies to expose APIs. It is a very simple protocol, defining only a few data types and commands. JSON-RPC allows for notifications (data sent to the server that does not require a response) and for multiple calls to be sent to the server which may be answered out of order.
Official
- JSON-RPC - Wikipedia - Informative JSON-RPC Wikipedia article.
- JSON-RPC - A stateless, light-weight remote procedure call (RPC) protocol.
- JSON-RPC.info - Historical use cases of JSON-RPC.
- JSON-RPC Google Group - Some useful historical conversations around JSON-RPC.
Libraries
-
Javascript
- jsonrpc-bidirectional - Bidirectional RPC over WebSocket, Worker, WebRTC and HTTP with extensive plugin support.
- Jayson - Jayson is a simple but featureful JSON-RPC 2.0/1.0 client and server for node.js
- multi-transport-jsonrpc - Provides a JSON-RPC solution for both the traditional HTTP scenario as well as for persistent, raw TCP connections.
- mqtt-json-rpc - JSON-RPC over mqtt
- pmrpc - JSON-RPC over html5 postMessage
- node-mole-rpc - Tiny transport agnostic JSON-RPC 2.0 client and server which can work everywhere. NodeJs, Browser, Electron. On any transport; Even custom.
-
node-mole-rpc-transport-mqtt - MQTT transport for Mole-RPC (JSON RPC library)
-
node-mole-rpc-transport-eventemitter - Event Emitter Mole RPC (JSON RPC library) transport
-
node-mole-rpc-transport-ws - WebSocket(ws) transport for Mole-RPC (JSON RPC library)
-
node-mole-rpc-transport-webworker - Easy way to communicate with webworker using Mole-RPC (JSON RPC library)
-
-
Swift
- JSONRPCKit - A type-safe JSON-RPC 2.0 library purely written in Swift.
-
.NET
- Microsoft/vs-streamjsonrpc - The StreamJsonRpc library offers JSON-RPC 2.0 over any .NET Stream, WebSocket, or Pipe. With bonus support for request cancellation, client proxy generation, and more.
- JsonRpc.Router - A .NetStandard 2.0 IRouter implementation for Json Rpc v2 requests for Microsoft.AspNetCore.Routing.
- JSON-RPC.NET - JSON-RPC.Net is a high performance Json-Rpc 2.0 server, leveraging the popular JSON.NET library. Host in ASP.NET, also supports sockets and pipes, oh my!
-
Nim
- nim-json-rpc - Nim library for implementing JSON-RPC clients and servers
-
Golang
- go-ethereum/rpc - Package rpc implements bi-directional JSON-RPC 2.0 on multiple transports.
- osamingo/jsonrpc - The jsonrpc package helps implement of JSON-RPC 2.0 in golang
- hyperledger/burrow - Burrow is a fully fledged blockchain node and smart contract execution engine, with an RPC service!
-
Python
- pavlov99 - JSON-RPC 1/2 transport implementation. Supports python 2/3 and pypy.
-
PHP
- EvilScott/junior - PHP client/server library for JSON-RPC 2.0
-
C
- cesanta/mjson - C/C++ JSON parser, emitter, JSON-RPC engine for embedded systems
-
Ruby
- helios-technologies/json-rpc - Implementation of JSON RPC 2.0 protocol. It allows you to create easily a json rpc server in pure Rack, in Rails, or asynchronous using Thin and EventMachine.
Framework Integrations
Tools
- ApEye.org - APEye is a jQuery widget for issuing HTTP requests
- JSON-RPC 2.0 Shell - Interactive RPC shell for rapid querying, testing and debugging of JSON-RPC 2.0 web services
Interface Description
- open-rpc.org - A standard, programming language-agnostic interface description for JSON-RPC 2.0 APIs.
- open-rpc/spec - Specification for OpenRPC
- open-rpc/meta-schema - JSON Schema file representing the open-rpc specification.
- open-rpc/playground - A play to play around with OpenRPC.
- open-rpc/inspector - OpenRPC Inspector is a simple tool to create, modify and execute JSON-RPC requests.
- open-rpc/editor-extensions-vscode - A vscode extension to provide validation and auto-completion for open-rpc documents.
- open-rpc/generator-client - Mono repo for the client generators for each target language
- open-rpc/docs-react - OpenRPC documentation as a react component.
- open-rpc/examples - Collection of example open-rpc documents
Uses of JSON-RPC
- Arm mbed IoT Platform - Arm Mbed OS together with the Pelion IoT Platform provide a transformative device-to-data platform for connected IoT that empowers an intelligent enterprise.
- Bitcoin - Bitcoin is a decentralized cryptocurrency created in 2008 by the pseudonymous Satoshi Nakamoto.
- Dash - Dash is Digital Cash You Can Spend Anywhere.
- Dogecoin - Dogecoin is a cryptocurrency featuring a likeness of the Shiba Inu dog from the "Doge" Internet meme as its logo.
- Ethereum Classic - Ethereum Classic is an open-source, public, blockchain-based distributed computing platform featuring smart contract (scripting) functionality that was a result of the DAO fork.
- Ethereum - Ethereum is an open-source, public, blockchain-based distributed computing platform and operating system featuring smart contract (scripting) functionality.
- FreeIPA - Manage Linux users and client hosts in your realm from one central location with CLI, Web UI or RPC access. Enable Single Sign On authentication for all your systems, services and applications.
- Kodi - Kodi is a free media player that is designed to look great on your big screen TV but is just as home on a small screen.
- Litecoin - Litecoin is a cryptocurrency that enables instant payments to anyone in the world and that can be efficiently mined with consumer-grade hardware.
- Microsoft Language Server - Underlying Language Server protocol for vscode
- Microsoft SQL Tools Service - SQL Query and Management over JSON-RPC.
- Monero - the secure, private, untraceable cryptocurrency.
- OpenDaylight - OpenDaylight (ODL) is a modular open platform for customizing and automating networks of any size and scale.
- PPIO - A decentralized data storage and delivery platform for developers that value affordability, speed, and privacy.
- Qtum - Qtum is an open sourced public blockchain platform, leveraging the security of UTXO while enabling multiple virtual machines including EVM and the revolutionary x86 VM.
- Quorum - A permissioned implementation of Ethereum supporting data privacy.
- RANDOM.ORG - RANDOM.ORG offers true random numbers to anyone on the Internet. The randomness comes from atmospheric noise, which for many purposes is better than the pseudo-random number algorithms typically used in computer programs. People use RANDOM.ORG for holding drawings, lotteries and sweepstakes, to drive online games, for scientific applications and for art and music. The service has existed since 1998 and was built by Dr Mads Haahr of the School of Computer Science and Statistics at Trinity College, Dublin in Ireland. Today, RANDOM.ORG is operated by Randomness and Integrity Services Ltd.
- Ripple - Ripple is a real-time gross settlement system, currency exchange and remittance network created by Ripple Labs Inc., a US-based technology company.
- Tarantool - Get your data in RAM. Get compute close to data. Enjoy the performance. (Provides nginx upstream module to support JSON-RPC)
- Visual Studio Language Server Extensions - The Editor Extensions are build on the Language Server. It's Interface is over JSON-RPC.
- Zcash - Zcash is a cryptocurrency aimed at using cryptography to provide enhanced privacy for its users compared to other cryptocurrencies such as Bitcoin.