サービス通信、ディスカバリー、トラフィック管理を実現するRPC・マイクロサービスフレームワーク、Apache DubboのJava実装。
- スター
- 10,958
- フォーク
- 4,116
- 未解決の Issue
- 29
- 最終コミット
- 15 時間前
これは何?
Apache Thriftは、ポイントツーポイントのリモートプロシージャコール向けの軽量なソフトウェアスタックです。データ転送、データシリアライズ、アプリケーションレベルの処理を抽象化し、シンプルなインターフェース定義言語から多くの言語のクライアントコードとサーバーコードを生成するコードジェネレーターを備えています。
Thriftは28のプログラミング言語をサポートしており、異なる言語で書かれたサービス間でデータをやり取りしたり、互いのメソッドを呼び出したりできます。サーバーをアップグレードしても古いクライアントが動作し続け、新しいクライアントから古いサーバーにも接続できるように設計されているため、APIのバージョン管理が容易になります。
コンパイラーはC++で実装されています。リポジトリには各言語向けのライブラリ、言語間テストを含むテストスイート、チュートリアルが含まれています。ビルドにはAutotoolsまたはDockerを使用します。
主な機能
- 01シンプルな定義言語からクライアントとサーバーのコードを生成
- 0228のプログラミング言語をサポート
- 03差し替え可能なデータ転送レイヤーとシリアライズレイヤー
- 04段階的なバージョンアップ時の互換性を考慮した設計
- 05言語間テストを含むテストスイート
ユースケース
- 異なる言語で実装され、相互に呼び出しを行うマイクロサービスの構築
- アップグレード中も古いクライアントへのサービス提供を続ける、安定したRPC APIの公開
- C++バックエンドと他言語のクライアント間でのデータ構造の共有
クイックスタート
- 1
configure スクリプトを生成する(ソースリポジトリからビルドする場合のみ必要。tarball からのビルドでは不要)
./bootstrap.sh - 2
ビルドを構成する。Boost が標準以外の場所にある場合は --with-boost を使用する
./configure - 3
Thrift をビルドする
make - 4
スーパーユーザーとして Thrift をインストールする
make install
使う前に知っておきたいこと
- ソースからのビルドには autotools と、Boost などの前提条件が必要です。これらはインストールドキュメントに記載されていますが、古くなっている可能性があります。
- Java、Ruby、PHP など一部の言語向けライブラリは、それぞれ独自のビルドツールを使って手動でインストールする必要があります。
トピック
よくある質問
- thrift とは?
- 多くのプログラミング言語間で相互運用可能なクライアントとサーバーを生成する、言語非依存のRPCフレームワークです。 Apache Thriftは、ポイントツーポイントのリモートプロシージャコール向けの軽量なソフトウェアスタックです。データ転送、データシリアライズ、アプリケーションレベルの処理を抽象化し、シンプルなインターフェース定義言語から多くの言語のクライアントコードとサーバーコードを生成するコードジェネレーターを備えています。
- thrift は無料で使えますか?ライセンスは?
- thrift は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- thrift は今もメンテナンスされていますか?
- 活発にメンテナンス中。thrift の最終コミットは 2026年10月21日 です。
- thrift は何に使えますか?
- 異なる言語で実装され、相互に呼び出しを行うマイクロサービスの構築 アップグレード中も古いクライアントへのサービス提供を続ける、安定したRPC APIの公開 C++バックエンドと他言語のクライアント間でのデータ構造の共有
- thrift のインストール方法は?
- configure スクリプトを生成する(ソースリポジトリからビルドする場合のみ必要。tarball からのビルドでは不要): ./bootstrap.sh ビルドを構成する。Boost が標準以外の場所にある場合は --with-boost を使用する: ./configure Thrift をビルドする: make スーパーユーザーとして Thrift をインストールする: make install
- thrift はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/apache/thrift
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
バイナリデータを解析・展開せずに直接読み取れる、クロスプラットフォームのシリアライズライブラリです。
最小限のセットアップで、本番運用に適したSpringベースのアプリケーションやサービスを構築できる、独自の方針を持つJavaフレームワークです。
ソースコードを参照できないオブジェクトも含め、JavaオブジェクトとJSONを相互変換できるJavaライブラリ。
REST、gRPC、AMQP RPC、NATS RPCの各トランスポートにまたがるコード構成を示す、Goサービス向けClean Architectureプロジェクトテンプレート。
ウィンドウ配置からキーの再割り当てまで、デスクトップをカスタマイズし日々の作業を効率化する30種類以上のWindowsユーティリティ集です。