Thrift は、ポイントツーポイント RPC 実装用の軽量で言語に依存しないソフトウェア スタックです。 Thrift は、データ転送、データのシリアル化、およびアプリケーション レベルの処理のためのクリーンな抽象化と実装を提供します。コード生成システムは、単純な定義言語を入力として受け取り、抽象化されたスタックを使用して相互運用可能な RPC クライアントとサーバーを構築する複数のプログラミング言語にわたるコードを生成します。
Thrift を使用すると、異なるプログラミング言語で書かれたプログラム間でデータを共有したり、リモート プロシージャを呼び出したりすることが簡単になります。 28 のプログラミング言語をサポートしているため、Thrift は現在使用している言語をサポートしている可能性があります。
Thrift は、クライアント コードとサーバー コード全体にわたる非アトミック バージョンの変更をサポートするように特別に設計されています。これにより、古いクライアントに引き続きサービスを提供しながら、サーバーをアップグレードできます。または、新しいクライアントが古いサーバーにリクエストを発行するようにします。 API のバージョン管理時の節約と互換性についてコミュニティが提供する優れた記事は、「Thrift Missing Guide」にあります。
Thrift の設計と実装の詳細については、このディストリビューションに含まれる Thrift ホワイトペーパー、または対象の特定のサブディレクトリにある README.md ファイルを参照してください。
支店 | トラヴィス | 承認者 | コベリティスキャン | codecov.io | Webサイト |
---|---|---|---|---|---|
master | |||||
0.17.0 |
現時点では、Thrift は特定のリリース カレンダーを管理していません。
年に2回のリリースを目指しています。現在のリリースをダウンロードします。
1 つ以上のコントリビューター ライセンス契約に基づいて、Apache Software Foundation (ASF) にライセンスが付与されています。著作権所有権に関する追加情報については、この作品とともに配布される NOTICE ファイルを参照してください。 ASF は、Apache License バージョン 2.0 (「ライセンス」) に基づいてこのファイルをライセンス供与します。ライセンスに準拠する場合を除き、このファイルを使用することはできません。ライセンスのコピーは次の場所で入手できます。
http://www.apache.org/licenses/LICENSE-2.0
適用される法律で義務付けられている場合または書面による同意がない限り、ライセンスに基づいて配布されるソフトウェアは、明示または黙示を問わず、いかなる種類の保証や条件もなく、「現状のまま」で配布されます。ライセンスに基づく許可と制限を規定する特定の言語については、ライセンスを参照してください。
倹約/
コンパイラ/
Contains the Thrift compiler, implemented in C++.
ライブラリ/
Contains the Thrift software library implementation, subdivided by
language of implementation.
cpp/
go/
java/
php/
py/
rb/
...
テスト/
Contains sample Thrift files and test code across the target programming
languages.
チュートリアル/
Contains a basic tutorial that will teach you how to develop software
using Thrift.
Travis CI がプロジェクトをビルドするのと同じ方法でビルドするには、docker を使用する必要があります。 Docker の包括的な構築手順が用意されています。
ビルド要件のリストについては、http://thrift.apache.org/docs/install を参照してください (古い可能性があります)。あるいは、前提条件のリストについては、Docker ビルド環境を参照してください。
Thrift の詳細については、次の Thrift Web ページで入手できます。
http://thrift.apache.org
Thrift は、Adam D'Angelo によって作成された軽量 RPC ツールである Pillar と、Google のプロトコル バッファーからインスピレーションを受けました。
ソース リポジトリから初めてビルドする場合は、構成スクリプトを生成する必要があります。 (tarball をダウンロードした場合、これは必要ありません。) 最上位のディレクトリから、次の操作を実行します。
./bootstrap.sh
構成スクリプトが生成されると、節約を構成できるようになります。最上位のディレクトリから次を実行します。
./configure
ブースト ファイルの場所を明示的に指定する必要がある場合があります。 boost を/usr/local
にインストールした場合は、次のようにconfigureを実行します。
./configure --with-boost=/usr/local
デフォルトでは、Thrift C++ ライブラリは通常、デバッグ シンボルを含めて構築されることに注意してください。これらのオプションをカスタマイズしたい場合は、configure で CXXFLAGS オプションを次のように使用する必要があります。
./configure CXXFLAGS='-g -O2'
./configure CFLAGS='-g -O2'
./configure CPPFLAGS='-DDEBUG_MY_FEATURE'
gcov を有効にするには、必要なオプション -fprofile-arcs -ftest-coverage を有効にします。
./configure --enable-coverage
./configure --help を実行して、他の構成オプションを確認します。
Python ライブラリは --prefix オプションを無視し、Python の distutils が配置する場所 (通常は/usr/lib/pythonX.Y/site-packages/
の行に沿って) にのみインストールされることに注意してください。 Python モジュールのインストール場所を制御する必要がある場合は、PY_PREFIX 変数を設定します。 (DESTDIR は Python と C++ で尊重されます。)
節約しましょう:
make
最上位のディレクトリからスーパーユーザーになり、次の操作を実行します。
make install
thrift をアンインストールします。
make uninstall
一部の言語パッケージは、その言語に適したビルド ツールを使用して手動でインストールする必要があることに注意してください (この記事の執筆時点では、これは Java、Ruby、PHP に適用されます)。
各言語ライブラリ パッケージのインストールの詳細については、lib// フォルダーで README.md ファイルを探してください。
Apache Thrift は多数のパッケージ マネージャー経由で入手できますが、そのリストは着実に増加しています。より詳細な概要は、Apache Thrift Web サイトの「ライブラリ」または /lib にある各言語の README で参照できます。
クライアント ライブラリ テストは多数あり、それらはすべて最上位ディレクトリから実行できます。
make -k check
これにより、(必要に応じて) すべてのライブラリが作成され、各クライアント ライブラリで定義された単体テストが実行されます。 1 つの言語が失敗した場合でも、make チェックは続行され、最後に概要が表示されます。
クロスランゲージ テスト スイートを実行するには、次を実行してください。
make cross
これにより、異なる言語のクライアントとサーバーを使用する一連のテストが実行されます。