/python-jsonrpc-server

A Python 2 and 3 asynchronous JSON RPC server

Primary LanguagePythonMIT LicenseMIT

Python JSON RPC Server

https://circleci.com/gh/palantir/python-jsonrpc-server/tree/develop.svg?style=shield https://ci.appveyor.com/api/projects/status/r0jlmvkqwneieeh6/branch/develop?svg=true

A Python 2.7 and 3.4+ server implementation of the JSON RPC 2.0 protocol. This library has been pulled out of the Python Language Server project.

Asynchronous request handling is supported using Python 3's concurrent.futures module and the Python 2 concurrent.futures backport.

Installation

pip install -U python-jsonrpc-server

Examples

The examples directory contains two examples of running language servers over websockets. examples/langserver.py shows how to run a language server in-memory. examples/langserver_ext.py shows how to run a subprocess language server, in this case the Python Language Server.

Start by installing tornado and python-language-server

pip install python-language-server[all] tornado

Then running python examples/langserver.py or python examples/langserver_ext.py will host a websocket on ws://localhost:3000/python.

To setup a client, you can use the examples from Monaco Language Client.

Development

To run the test suite:

pip install .[test] && tox

License

This project is made available under the MIT License.