{"id":24713,"library":"tinyrpc","title":"tinyrpc","description":"A small, modular, transport and protocol neutral RPC library supporting JSON-RPC (2.0, 1.0), zmq, and more. Current version 1.1.7. Low release cadence.","status":"active","version":"1.1.7","language":"python","source_language":"en","source_url":"https://github.com/mbr/tinyrpc","tags":["rpc","json-rpc","transport","client","server","tiny"],"install":[{"cmd":"pip install tinyrpc","lang":"bash","label":"Standard install"}],"dependencies":[],"imports":[{"note":"RPCClient is exposed via tinyrpc top-level, not submodule.","wrong":"from tinyrpc.client import RPCClient","symbol":"RPCClient","correct":"from tinyrpc import RPCClient"},{"note":"JSONRPCProtocol lives in tinyrpc.protocols.jsonrpc.","wrong":"from tinyrpc.jsonrpc import JSONRPCProtocol","symbol":"JSONRPCProtocol","correct":"from tinyrpc.protocols.jsonrpc import JSONRPCProtocol"},{"note":"The dispatcher is RPCDispatcher, not ServerDispatcher.","wrong":"from tinyrpc.server import ServerDispatcher","symbol":"ServerDispatcher","correct":"from tinyrpc.dispatch import RPCDispatcher"},{"note":"tinyrpc uses RPCError base class, not ServerError.","wrong":"from tinyrpc import ServerError","symbol":"ServerError","correct":"from tinyrpc.exc import RPCError"}],"quickstart":{"code":"from tinyrpc import RPCClient\nfrom tinyrpc.protocols.jsonrpc import JSONRPCProtocol\nfrom tinyrpc.transports.http import HttpPostClientTransport\n\nclient = RPCClient(JSONRPCProtocol(), HttpPostClientTransport('http://localhost:5000/api'))\nresult = client.call('add', x=1, y=2)\nprint(result)","lang":"python","description":"Quickstart: create a JSON-RPC client via HTTP."},"warnings":[{"fix":"Test thoroughly before depending on it for critical systems.","message":"The library is very lightly maintained. Many issues remain open; consider it stable but not actively developed.","severity":"gotcha","affected_versions":"all"},{"fix":"Use other libraries (e.g., jsonrpcclient) if you need robust batch handling.","message":"JSON-RPC 2.0 is supported but not all edge cases (e.g., batch requests) are handled correctly.","severity":"gotcha","affected_versions":"<=1.1.7"},{"fix":"Catch RPCError from tinyrpc.exc instead of expecting standard error dictionaries.","message":"The library uses its own exception classes; standard JSON-RPC error object mapping is partial.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"search_vec":"'1.0':16 '1.1.7':22 '2.0':15 'cadenc':25 'client':31 'current':20 'json':13,28 'json-rpc':12,27 'librari':10 'low':23 'modular':4 'neutral':8 'protocol':7 'releas':24 'rpc':9,14,26,29 'server':32 'small':3 'support':11 'tini':33 'tinyrpc':1 'transport':5,30 'version':21 'zmq':17","created_at":"2026-05-01T08:14:32.450075+00:00","updated_at":"2026-05-01T08:14:32.450075+00:00","problems":[{"fix":"Upgrade to latest: pip install --upgrade tinyrpc. Use correct import: from tinyrpc import RPCClient.","cause":"Installed version is very old (pre-1.0) or import path used is wrong.","error":"ImportError: cannot import name 'RPCClient' from 'tinyrpc'"},{"fix":"pip install tinyrpc[http] to get the HTTP transport.","cause":"HTTP transport is provided by an extra (tinyrpc[http]) not installed by default.","error":"ModuleNotFoundError: No module named 'tinyrpc.transports.http'"},{"fix":"Use correct constructor: HttpPostClientTransport(endpoint) (no keyword).","cause":"User tried to pass a 'post' argument to HttpPostClientTransport; wrong parameter name.","error":"TypeError: __init__() got an unexpected keyword argument 'post'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"1.1.7","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"http://github.com/mbr/tinyrpc","docs":null,"changelog":null,"pypi":"https://pypi.org/project/tinyrpc/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["http-networking","serialization"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}