Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
JSON-RPC server and client, written in Python using Twisted
Python
Branch: master

Reimplement WebClientContextFactory in tests and examples

...so that it does no certificate validation. Fastjsonrpc of course can do
cert validation (it's built around regular Agent), but it's pointless
overhead in examples and tests.
This makes the examples work with Twisted 14.0.0 while keeping backwards
compatibility with older releases. Regarding the tests, this fixes
one failure, but there is still the Reactor was unclean problem.
latest commit ef1431223c
tadeas authored

README.md

Introduction

A library for writing asynchronous JSON-RPC servers and clients in Python, using Twisted. It aims to be as simple and easy to understand (and hack) as possible.

Read more about JSON-RPC at http://www.jsonrpc.org/

Features

  • Support for HTTP and HTTPS as protocol (via twisted.web) and for more lightweight netstring (see http://cr.yp.to/proto/netstrings.txt )

  • Support for HTTP authentization - only basic, not digest; use SSL for encrypted credentials.

  • Support for HTTP persistent connections and Factory to create proxies to different URLs

  • Support for HTTP compression

  • Full standards compliance.

  • Support both JSON-RPC standards at once - great if you don't control your clients.

  • 'Just work' with various clients (i.e. PHP, C++, JavaScript...).

  • Detailed examples :-) .

TODO

  • More tests, better (functionality) coverage. This applies to every project, always :-) .

  • Refactoring, mostly tests.

    • test_server and test_jsonrpc
    • test_client and test_netstringclient

Notes

  • JSON is well readable for a human. It's easy to use Wireshark (www.wireshark.org) or similar for debugging.

  • JSON-RPC version 1 doesn't talk about batch requests. In order to support both standards at once, fastjsonrpc supports it just like in version 2. It ties JSON-RPC version to the method call, not the request as a whole.

  • I didn't test the JSON Class hinting, as mentioned in the version 1 spec. I leave this to the JSON parsing capabilities of respective libraries.

  • SSL client test raises an error after shutDown. Looks like a bug in Trial and we can ignore it.

Something went wrong with that request. Please try again.