GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

eleme

thriftpy – Apache Thriftの純粋なPython実装

投稿日:

Apache Thriftの純粋なPython実装。 https://thriftpy.readthedocs.org/

スリフトピー

ThriftPyはpythonの方法でApache Thriftの純粋なPython実装です。

ドキュメント: https : //thriftpy.readthedocs.org/

インストール

pipでインストールしてください。

$ pip install thriftpy

Cythonを最初にインストールして、Cython拡張をローカルに構築することもできます。

$ pip install cython thriftpy

コードデモ

ThriftPyを使うと、サーバー/クライアントコードを簡単に書くことができます。 この簡単なpingpongサービスのデモをチェックアウトしましょう。

私たちは ‘pingpong.thrift’ファイルが必要です:

service PingPong {
    string ping(),
}

次に、サーバーを作ることができます:

import thriftpy
pingpong_thrift = thriftpy.load("pingpong.thrift", module_name="pingpong_thrift")

from thriftpy.rpc import make_server

class Dispatcher(object):
    def ping(self):
        return "pong"

server = make_server(pingpong_thrift.PingPong, Dispatcher(), '127.0.0.1', 6000)
server.serve()

そしてクライアント:

import thriftpy
pingpong_thrift = thriftpy.load("pingpong.thrift", module_name="pingpong_thrift")

from thriftpy.rpc import make_client

client = make_client(pingpong_thrift.PingPong, '127.0.0.1', 6000)
print(client.ping())

見て、それは簡単です!

より多くの使用例については、ソースコードの ‘examples’と ‘tests’ディレクトリを参照することができます。

特徴

現在、ThriftPyにはこれらの機能があります(上流のPythonのlibに比べても利点があります):

  • Python 2.7、Python 3.4+、PyPy、PyPy3をサポートします。

  • 純粋なPythonの実装。 もはや、 ‘thrift’パッケージをコンパイルしてインストールする必要はありません。 あなたが必要とするのは、倹約と退屈なファイルだけです。

  • Apache Thriftと互換性があります。 ThriftPyを公式の実装サーバーとクライアント(Thriftpyクライアントを持つ上流サーバーやその反対のサーバーなど)と一緒に使用することができます。

    現在実装されているプロトコルとトランスポート:

    • バイナリプロトコル(PythonとCython)
    • コンパクトなプロトコル(PythonとCython)
    • jsonプロトコル
    • バッファリングされたトランスポート(pythonとcython)
    • フレーム輸送
    • 竜巻サーバーとクライアント(竜巻4.0)
    • httpサーバーとクライアント
  • モジュールとしてリトリートファイルを直接読み込むことができます.SDKコードはオンザフライで生成されます。

    例えば、 pingpong_thrift = thriftpy.load("pingpong.thrift", module_name="pingpong_thrift")は、 ‘pingpong_thrift’を ‘pingpong_thrift’モジュールとしてロードします。

    または、 thriftpy.install_import_hook()で有効にしたインポートフックをimport thriftpy.install_import_hook()を使用して ‘pingpong.thrift’ファイルをモジュールとしてインポートすることができますfrom pingpong_thrift import PingServiceから、特定のオブジェクトをfrom pingpong_thrift import PingServiceモジュールからインポートすることもできます。

  • 簡単なRPCサーバー/クライアントのセットアップ。

寄稿

  1. レポをフォークして変更します。
  2. バグが修正されたか、機能が期待どおりに機能していることを示すテストを作成します。
  3. tox travis-ciまたはtoxテストが成功することを確認してください。
  4. プルリクエストを送信します。

貢献者

https://github.com/eleme/thriftpy/graphs/contributors

変更ログ

https://github.com/eleme/thriftpy/blob/master/CHANGES.rst







-eleme
-, , ,

執筆者: