Release Notes

Release Date:2022-02-19
  • Reordered PooledJSONRPCServer inheritance definition (#55 <>)
  • Migration of Continuous Integration: * Use PyTest instead of Nose * Run CI with GitHub Actions instead of Travis-CI

Release Date:2021-09-28
  • Removed remaining print statements (#52)


Release Date:2021-09-26
  • ServerProxy keeps the given query string, as before 0.4.2. This release fixes #51, and a unit test has been added to ensure there won’t be any regression again on this feature
  • JSON library selection is now made in the jsonrpclib.jsonlib module, using a set of handler classes. This will ease the addition of new libraries.
  • Added support for ujson
  • Fixed Travis-CI builds (migrated from .org to .com and bypassed the coveralls issue with ppc64le)
  • Fixed an issue with the CGI test in Python 3-only environments


Release Date:2020-11-09
  • Use urlparse from urllib.parse (Python 3) or urlparse (Python 2) to prepare for the deprecation of urllib.parse.splittype. Thanks to @citrus-it and @markmcclain for this fix. (see #44 and #45 for more details)
  • Unix socket clients now send localhost as Host: HTTP field instead of the path to the socket (see #47). Thanks @markmcclain for this fix.
  • Added a TransportError exception, subclass of ProtocolError, which provides more details (see #49). Thanks @markmcclain for this improvement.
  • Added PowerPC 64 architecture (ppc64le) to Travis CI runs, to ease the integration of new release into RHEL/Ubuntu (see #50 by @kishorkunal-raj)


Release Date:2020-04-12
  • Fixed a size computation issue in the request handler (see #42)


Release Date:2019-01-13
  • Added back support of Unix sockets on both server and client side. Note: HTTPS is not supported on server-side Unix sockets
  • Fixed the CGI request handler
  • Fixed the request handler wrapping on server side
  • Documentation is now hosted on ReadTheDocs:


Release Date:2018-10-26
  • Fixed a memory leak in the Thread Pool, causing the PooledJSONRPCServer to crash after some uptime (see #35). Thanks @animalmutch for reporting it.


Release Date:2017-06-27
  • Hide dunder methods from remote calls (thanks to @MarcSchmitzer). This avoids weird behaviours with special/meta methods (__len__, __add__, …). See (#32) for reference.


Release Date:2017-04-27
  • Handle the potentially incomplete xmlrpc.server package when the future package is used (thanks to @MarcSchmitzer)


Release Date:2016-12-12
  • Added support for enumerations (enum.Enum classes, added in Python 3.4)
  • Removed tests for pypy3 as it doesn’t work with pip anymore


Release Date:2016-08-23
  • Clients can now connect servers using basic authentication. The server URL must be given using this format: http://user:password@server
  • The thread pool has been updated to reflect the fixes contributed by @Paltoquet for the iPOPO project.


Release Date:2016-06-12


Release Date:2015-08-24
  • Removed support for Python 2.6
  • Added a __repr__ method to the _Method class
  • Project is now tested against Python 3.4 and Pypy 3 on Travis-CI


Release Date:2015-02-28
  • Corrects the PooledJSONRPCServer
  • Stops the thread pool of the PooledJSONRPCServer in server_close()
  • Corrects the Config.copy() method: it now uses a copy of local classes and serialization handlers instead of sharing those dictionaries.


Release Date:2015-02-16
  • Added a thread pool to handle requests
  • Corrects the handling of reused request sockets on the server side
  • Corrects the additional_header feature: now supports different headers for different proxies, from @MarcSchmitzer
  • Adds a data field to error responses, from @MarcSchmitzer and @mbra


Release Date:2015-01-16
  • Added support for a custom SSLContext on client side


Release Date:2014-12-23
  • Fixed support for IronPython
  • Fixed Python 2.6 compatibility in tests
  • Added logs on server side


Release Date:2014-09-18
  • Return None instead of an empty list on empty replies
  • Better lookup of the custom serializer to look for


Release Date:2014-08-28
  • Code review
  • Fixed propagation of configuration through jsonclass, from dawryn


Release Date:2014-06-09
  • Fixed compatibility with JSON-RPC 1.0
  • Propagate configuration through jsonclass, from dawryn


Release Date:2014-06-05
  • Enhanced support for bean inheritance


Release Date:2014-06-02
  • Enhanced support of custom objects (with __slots__ and handlers), from dawryn See Pull requests #5, #6, #7)
  • Added tests
  • First upload as a Wheel file

Release Date:2013-10-25
  • Fixed loading of recursive bean fields (beans can contain other beans)
  • ServerProxy can now be closed using: client("close")()


Release Date:2013-10-14
  • Fixed bean marshalling
  • Added support for set and frozenset values
  • Changed configuration singleton to Config instances


Release Date:2013-06-20
  • Requests with ID 0 are not considered notifications anymore
  • Fixed memory leak due to keeping history in ServerProxy
  • Content-Type can be configured
  • Better feeding of the JSON parser (avoid missing parts of a multi-bytes character)
  • Code formatting/compatibility enhancements
  • Applied enhancements found on other forks:
    • Less strict error response handling from drdaeman
    • In case of a non-predefined error, raise an AppError and give access to, from tuomassalo


Release Date:2013-05-22
  • First published version of this fork, with support for Python 3
  • Version number was following the original project one