Python implementation of fastrpc protocol
- I prefer python packages without dependencies on debian packages.
- Its flexibility is limited in some points. E.g. the library provides its own implementation of HTTP server and client, which is nice to have in C++, but not in Python I would say as there are already full-featured and more mature libraries available for those tasks.
- In my opinion it's not worth to wrap such a library for python anyway (at least not from today's perspective). The original binding itself is 3500 lines of code. So this is an alternative aproach.
- And I want to use it as a showcase for cython as well.
This library provides FastRPC encoding/decoding functions, FastRPC client (based on 'requests') and an interactive FastRPC client/terminal 'pyfrpc' (an alternative to 'fastrpc-netcat' based on 'IPython'). API mostly differs and is not meant to be a drop-in replacement.
It is compatible with protocol versions 1.0, 2.0, 2.1 and 3.0.
Package provides both cython (C extencion) and pure python implementations.
Cython implementation is faster but requires C toolchain (or available python
wheels). To use pure python implementation set env variable
Some features missing are:
- handling of base64 encoded FastRPC
- helper to build a server
Aside from distribution as a python package, it's also possible to download single-file amalgamated distribution: pyfrpc.py.
Interactive client opens na ipython session with varible
client initialized to
FastFRPC connection. It supports tab-based completion of remote procedures'
names as well as shownig their documentation using question mark notation as is
usual in ipython.
$ pyfrpc --help usage: pyfrpc [-h] [--insecure] URL FRPC netcat for interactive connection to FRPC server positional arguments: URL URL of FRPC server to connect to optional arguments: -h, --help show this help message and exit --insecure Do not check server's cert
$ pyfrpc http://my-avesome-server In : client.greeting? ... Docstring: Prints greeting. In : client.greeting() Out: 'hello from server'
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|
|pyfrpc-0.2.2-cp27-cp27mu-manylinux1_x86_64.whl (193.8 kB) Copy SHA256 hash SHA256||Wheel||cp27|
|pyfrpc-0.2.2-cp35-cp35m-manylinux1_x86_64.whl (203.9 kB) Copy SHA256 hash SHA256||Wheel||cp35|
|pyfrpc-0.2.2-cp36-cp36m-manylinux1_x86_64.whl (209.0 kB) Copy SHA256 hash SHA256||Wheel||cp36|
|pyfrpc-0.2.2-cp37-cp37m-manylinux1_x86_64.whl (207.3 kB) Copy SHA256 hash SHA256||Wheel||cp37|
|pyfrpc-0.2.2.zip (92.7 kB) Copy SHA256 hash SHA256||Source||None|