Simple JSON-RPC service without transport layer
Project description
JSONRPCBase
NOTE: This is a fork of level12/jsonrpcbase with changes maintained by KBase
Simple JSON-RPC service without transport layer
This library is intended as an auxiliary library for easy an implementation of JSON-RPC services with Unix/TCP socket like transport protocols that do not have complex special requirements. You need to utilize some suitable transport protocol with this library to actually provide a working JSON-RPC service.
Features
- Easy to use, small size, well tested.
- Supports JSON-RPC v2.0. Compatible with v1.x style calls with the exception of v1.0 class-hinting.
- Optional argument type validation that significantly eases development of jsonrpc method_data.
Example
Example usage:
import jsonrpcbase
chat_service = jsonrpcbase.JSONRPCService()
def login(username, password, timelimit=0):
# (...)
return True
def receive_message(**kwargs):
# (...)
return chat_message
def send_message(msg):
# (...)
pass
if __name__ == '__main__':
# Adds the method login to the service as a 'login'.
chat_service.add(login, types=[basestring, basestring, int])
# Adds the method receive_message to the service as a 'recv_msg'.
chat_service.add(receive_message, name='recv_msg', types={"msg": basestring, "id": int})
# Adds the method send_message as a 'send_msg' to the service.
chat_service.add(send_message, 'send_msg')
# Receive a JSON-RPC call.
jsonmsg = my_socket.recv()
# Process the JSON-RPC call.
result = chat_service.call(jsonmsg)
# Send back results.
my_socket.send(result)
Development
Install poetry and run poetry install.
Run tests with make test.
Deploy with poetry build and poetry publish.
Credits
This project was originally developed by Juhani Åhman.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kbase_jsonrpcbase-0.3.0a6.tar.gz.
File metadata
- Download URL: kbase_jsonrpcbase-0.3.0a6.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.3 CPython/3.7.3 Linux/5.4.0-42-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad17753b3ff8bcaf2f686495387a4ff8c7d3bc2f268ce5a83afec48d1d57e690
|
|
| MD5 |
9d1c4cb08f8866cdebf11400b5041c8e
|
|
| BLAKE2b-256 |
6b7e9dd4649c07e71728d7a1d47a56ca96580ad38769e053c66624010c6838fd
|
File details
Details for the file kbase_jsonrpcbase-0.3.0a6-py3-none-any.whl.
File metadata
- Download URL: kbase_jsonrpcbase-0.3.0a6-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.3 CPython/3.7.3 Linux/5.4.0-42-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
775e1f8dbc157521c528a1b0bfa63cdae733dc3e8dcf743654c175ebb24bb6df
|
|
| MD5 |
42f6d93024db441a67bbdb67817e3173
|
|
| BLAKE2b-256 |
a00160bdad388dea1555d1636b612ef2f4f3034a4389e6addac3b44ca89fd598
|