Skip to content
/ torpc Public
forked from yoki123/torpc

A tiny async tcp and duplex rpc implementation in Python

Notifications You must be signed in to change notification settings

ethaniz/torpc

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ToRPC

ToRPC(Tornado + RPC) is a tiny tcp and duplex RPC implementation in Python based on Tornado IOLoop. It's very lightweight and high performance(especially on PyPy).

Notice: ToRPC was only tested on CPython 2.7+ and PyPy 2.5+ until now.

Examples


RPC server

from tornado import ioloop
from torpc import RPCServer
server = RPCServer(('127.0.0.1', 5000))

@server.service.register()
def echo(x):
    return x

server.start()
ioloop.IOLoop.instance().start()

RPC client

from tornado import ioloop, gen
from torpc import RPCClient

def result_callback(f):
    print(f.result())

@gen.coroutine
def using_gen_style():
    want_to_say = 'way to explore'
    ret = yield rc.call('echo', want_to_say)
    assert ret == want_to_say
    print('gen_style complete')

rc = RPCClient(('127.0.0.1', 5000))
rc.call('echo', 'hello world', callback=result_callback)
future = rc.call('echo', 'code for fun')
future.add_done_callback(result_callback)
using_gen_style()
ioloop.IOLoop.instance().start()

See more in examples.

Performance

OS: CentOS 6.6 x64
CPU: Intel i5-3470 3.20GHz
Memory: 8 GB 1600 MHz DDR3

environment call coroutine(qps) callback(qps)
Python2.7.10 10162 12048
PyPy4.0.0 39645 42346

Document

中文

About

A tiny async tcp and duplex rpc implementation in Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%