Skip to main content

PyPI version CI Python 3.8 to 3.14 Downloads per month License: MIT

jsonrpcserver

Process incoming JSON-RPC 2.0 requests in Python

Documentation | API reference | Examples | Changelog | Migration

jsonrpcserver takes a JSON-RPC 2.0 request, calls your Python function and gives you the response to send back. It leaves the networking to you, so it fits into whatever server you already have.

Features

  • Works with any framework or transport. The docs have tested examples for http.server, Flask, Werkzeug, Django, FastAPI, aiohttp, Sanic, Tornado, websockets, ZeroMQ and Socket.IO.
  • Sync and async: dispatch and async_dispatch. With async_dispatch, the requests in a batch run concurrently.
  • Follows the spec for batches, notifications and errors, and checks each request's params against your function's signature.
  • Keeps exception messages out of responses and in your logs, and limits batch size with max_batch_size (from 5.0.10).
  • Typed: ships py.typed, and @method keeps your functions' signatures for mypy and pyright.
  • Safe to call from several threads, and tested on Python 3.8 to 3.14, including free-threaded 3.14t.

Install

pip install jsonrpcserver

If you're on 5.0.9 or older, upgrade: those versions send exception messages to clients. The changelog lists what changed in 5.0.10.

Quickstart

Save this as server.py and run it with python server.py:

from jsonrpcserver import Result, Success, method, serve


@method
def ping() -> Result:
    return Success("pong")


if __name__ == "__main__":
    serve("localhost", 8000)

Then send it a request from another terminal:

curl -s -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0", "method": "ping", "id": 1}' http://localhost:8000/

Output:

{"jsonrpc": "2.0", "result": "pong", "id": 1}

serve() is a small server for trying things out. In your own framework, pass the request body to dispatch and send back the string it returns. The examples show how.

Security

Before you put a server on the internet, pass max_batch_size to dispatch and limit the request body size in your framework. Run 5.0.10 or later. The Security page explains why.

Documentation

See also

jsonrpcclient (GitHub) creates JSON-RPC requests and parses the responses in Python. It's the client-side companion to this library, and its quickstart talks to the server above.

Credits

Created by Beau Barker. Maintained by Synapse Research.

Metadata

Release files for jsonrpcserver 5.0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jsonrpcserver 5.0.10
File Size Uploaded Provenance Actions
jsonrpcserver-5.0.10.tar.gz 188.2 kB With provenance Details for jsonrpcserver-5.0.10.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jsonrpcserver 5.0.10
File Interpreter ABI Platform Actions
jsonrpcserver-5.0.10-py3-none-any.whl Python 3 none any Details for jsonrpcserver-5.0.10-py3-none-any.whl

Total release size: 216.6 kB

Release files / jsonrpcserver-5.0.10.tar.gz

Download URL jsonrpcserver-5.0.10.tar.gz
Size 188.2 kB
Tags Source
SHA-256 checksum
How to use checksums
de59e7249b9c7020481e7c2d576e8f1046f78c33ee8bbc4adbc46680aeaa79b7
BLAKE2b-256 checksum
How to use checksums
0219ece08649db305a1d5690bcde52b1f95ee5ac64c5a0b8930f0c24e1fd9273
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Release files / jsonrpcserver-5.0.10-py3-none-any.whl

Download URL jsonrpcserver-5.0.10-py3-none-any.whl
Size 28.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3aa60235874375e7a701eae0e18ab40f38e2844c51d7e415d131ff9553ba15d7
BLAKE2b-256 checksum
How to use checksums
02194dc1614828506e06f3207220b72e47bbacb99349d634d914a9b363ae4182
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

Security for jsonrpcserver 5.0.10

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for jsonrpcserver-5.0.10.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 6, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

5.0.10 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page