Skip to main content
Help us improve Python packaging – donate today!

A fast MessagePack RPC library

Project Description

https://badge.fury.io/py/mprpc.png https://travis-ci.org/studio-ousia/mprpc.png?branch=master

mprpc is a lightweight MessagePack RPC library. It enables you to easily build a distributed server-side system by writing a small amount of code. It is built on top of gevent and MessagePack.

Installation

To install mprpc, simply:

$ pip install mprpc

Alternatively,

$ easy_install mprpc

Examples

RPC server

from gevent.server import StreamServer
from mprpc import RPCServer

class SumServer(RPCServer):
    def sum(self, x, y):
        return x + y

server = StreamServer(('127.0.0.1', 6000), SumServer())
server.serve_forever()

RPC client

from mprpc import RPCClient

client = RPCClient('127.0.0.1', 6000)
print client.call('sum', 1, 2)

RPC client with connection pooling

import gsocketpool.pool
from mprpc import RPCPoolClient

client_pool = gsocketpool.pool.Pool(RPCPoolClient, dict(host='127.0.0.1', port=6000))

with client_pool.connection() as client:
    print client.call('sum', 1, 2)

Performance

mprpc significantly outperforms the official MessagePack RPC (1.8x faster), which is built using Facebook’s Tornado and MessagePack, and ZeroRPC (14x faster), which is built using ZeroMQ and MessagePack.

Results

Performance Comparison

mprpc

% python benchmarks/benchmark.py
call: 9508 qps
call_using_connection_pool: 10172 qps

Official MesssagePack RPC

% pip install msgpack-rpc-python
% python benchmarks/benchmark_msgpackrpc_official.py
call: 4976 qps

ZeroRPC

% pip install zerorpc
% python benchmarks/benchmark_zerorpc.py
call: 655 qps

Documentation

Documentation is available at http://mprpc.readthedocs.org/.

Release history Release notifications

This version
History Node

0.1.16

History Node

0.1.15

History Node

0.1.14

History Node

0.1.13

History Node

0.1.12

History Node

0.1.11

History Node

0.1.10

History Node

0.1.9

History Node

0.1.8

History Node

0.1.7

History Node

0.1.6

History Node

0.1.5

History Node

0.1.4

History Node

0.1.3

History Node

0.1.2

History Node

0.1.1

History Node

0.1

History Node

0.0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
mprpc-0.1.16.tar.gz (87.4 kB) Copy SHA256 hash SHA256 Source None Oct 18, 2017

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page