Roadmap¶
6.0 is in development on the main branch. It isn't released yet, and it may
still change. #320
tracks it, and Migration lists every change.
5.x keeps its current API, and gets bug and security fixes on the
release/5.x branch.
6.0¶
These change behaviour or remove things, so they wait for a major version.
Done on main:
- No dependencies.
Success,Errorand the dispatch functions return small dataclasses of their own instead of oslash'sRightandLeft. A hand-written check of the request fields replaces jsonschema, and makes dispatching a small method about four times faster. - Python 3.11 or later. 3.8, 3.9 and 3.10 have reached end of life.
- Safer defaults.
- Batches hold at most 100 requests unless you set
max_batch_size. NaN,Infinityand numbers too big for a float in a request are a Parse error.- An
Errorwith a non-integer code is aTypeError, and a method name starting withrpc.is aValueError. 5.0.10 warned. serve()listens on localhost unless you give it a host.
- Batches hold at most 100 requests unless you set
max_concurrencylimits how many requests of a batchasync_dispatchruns at once.- Cleanups. The names 5.0.10 deprecated are gone. The sync and async
dispatch functions take the same options. One
@methoddecorator serves sync and async functions.
Releases:
- 5.2.0, from
release/5.x, warns where code depends on something 6.0 changes. Released 6 November 2026. - 6.0.0rc1, the first release candidate, also 6 November 2026.
pip install --pre jsonrpcserverinstalls it. 6.0.0 follows once it has had some use.
Ideas under discussion¶
- Middleware around method calls (#126). Decorators on your own functions already cover most uses.
- OpenRPC schema generation (#156), probably as a separate package.
5.1.0 took one idea from this list early: a method can return a plain value (#285).