/jsonrpc-base

A JSON-RPC client library base interface

Primary LanguagePythonOtherNOASSERTION

jsonrpc-base: a compact JSON-RPC client library interface supporting multiple backends

This is a compact and simple JSON-RPC client implementation interface python code. This code is forked from https://github.com/gciotta/jsonrpc-requests

Main Features

  • Python 3.6, 3.7, 3.8 & 3.9 compatible
  • Supports nested namespaces (eg. app.users.getUsers())
  • 100% test coverage

Usage

See jsonrpc-async and jsonrpc-websocket for example implementations.

Tests

Install the Python tox package and run tox, it'll test this package with various versions of Python.

Changelog

2.1.1 (2022-05-03)

  • Unpin test dependencies

2.1.0 (2021-05-03)

  • Use uuid4 for request IDs

2.0.0 (2021-03-16)

  • BREAKING CHANGE: Allow single mapping as a positional parameter. Previously, when calling with a single dict as a parameter (example: server.foo({'bar': 0})), the mapping was used as the JSON-RPC keyword parameters. This made it impossible to send a mapping as the first and only positional parameter. If you depended on the old behavior, you can recreate it by spreading the mapping as your method's kwargs. (example: server.foo(**{'bar': 0}))

1.1.0 (2020-08-24)

  • Support for async server request handlers

1.0.3 (2019-11-12)

1.0.2 (2018-08-23)

  • Improved support for JSON-RPC v1 servers. (#2) @tdivis

1.0.1 (2018-07-06)

  • Falsey values are no longer treated as None for message IDs, or request parameters.

Credits

@gciotta for creating the base project jsonrpc-requests.

@mbroadst for providing full support for nested method calls, JSON-RPC RFC compliance and other improvements.

@vaab for providing api and tests improvements, better RFC compliance.