envoyproxy / envoyproxy/envoy

Feature Request: JSON-RPC support

Open
#14,621 4 comments 8 reactions 0 assignees View on GitHub
enhancement help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
437

Description

*Title*: *JSON-RPC over HTTP support*

*Description*:

JSON-RPC is a light-weight, transport-agnostic remote procedure call (RPC) protocol. The most common transport protocols are HTTP and WebSockets, and sometimes TCP and Unix domain sockets.

JSON-RPC is commonly used to provide remote access to management interfaces. It is particularly prevalent with cryptocurrency P2P clients, being the primary access method for the majority of projects.

A common use-case of an Envoy JSON-RPC filter is access control. For example, the `ext_authz` module could be used to limit access to harmless read-only methods to lesser privileged users, while allowing admins full control.

*Relevant Links*:

Specifications:
* JSON-RPC 1.0 Specification: https://www.jsonrpc.org/specification_v1
* JSON-RPC 2.0 Specification: https://www.jsonrpc.org/specification

Notable users:
* Ethereum clients: https://eth.wiki/json-rpc/API (Cloudflare: https://blog.cloudflare.com/cloudflare-ethereum-gateway/)
* Bitcoin Core: https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)
* Facebook's Diem: https://github.com/diem/diem/blob/master/json-rpc/json-rpc-spec.md
* Deluge Torrent Client: https://deluge.readthedocs.io/en/latest/devguide/how-to/curl-jsonrpc.html

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.