Metadata-Version: 2.1
Name: rpconnect
Version: 0.10.0
Summary: lightweight rpc framework
Home-page: https://github.com/MaineKuehn/rpconnect
Author: Eileen Kuehn, Max Fischer
Author-email: maxfischer2781@gmail.com
License: MIT
Keywords: rpc remote-call
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Intended Audience :: Education
Classifier: Topic :: Education
Classifier: Programming Language :: Python :: 3 :: Only

RPConnect
#########

Lightweight Remote Procedure Call framework.
Only two components are of importance:

``RpcServer``
    A long-running server, where callables can be registered.

``remote_call``
    A single-use client, to call procedures on an RpcServer.

Overview
--------

On the server side, you can define and register callables.
These are then exposed by name:

.. code::

    def pingpong(*args, **kwargs):
        return args, kwargs

    with RpcServer(23000) as server:
        server.register(pingpong)
        server.run()

On the client side, you can directly dispatch a ``remote_call``.
This will block until a reply is available:

.. code::

    remote_call('localhost', 23000, 'pingpong', 'hello', 'world')

About
-----

This is a simple RPC library, primarily for prototyping and education setups.
It uses a JSON based protocol, which protects against undesired code execution.
Any complex protocols, such as packed or pickle based data, can be implemented on top.

