Skip to main content

simple rpc based on zerorpc and gevent

Project description

xnrpc

xnrpc is a light-weight, reliable and language-agnostic library for distributed communication between server-side processes. It builds on top of zerorpc and gevent, simple ,efficient and robust.

features

  • support heartbeat and timeout

  • graceful exceptions handler

  • support pipeline commands

  • asynchronous I/O, support large concurrency

  • very simple to use

demo

a simple server and client example:

from xnrpc.server import RpcInterface, ServerManager
from xnrpc.client import open_client
from xnrpc.common.log import get_log
_log = get_log(__name__)


class OperationRpcInterface(RpcInterface):

    def ls_file(self):
        _log.info('Operation ls file')
        return None

    def check_ip(self):
        _log.info('Operation check ip')
        return None

if __name__ == '__main__':
    # 启动RPC服务器
    rpc_interface = OperationRpcInterface
    url = 'tcp://127.0.0.1:7772'
    server = ServerManager(url, rpc_interface, name='Test Server')
    server.start()

    # 建立一个客户端连接
    with open_client(url) as client:
        client.ls_file()
        client.check_ip()

    # 停止服务器
    server.stop()

Resources

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page