Thrift 是一個輕量級、獨立於語言的軟體堆疊,用於點對點 RPC 實作。 Thrift 為資料傳輸、資料序列化和應用程式級處理提供了乾淨的抽象和實作。程式碼產生系統以簡單的定義語言作為輸入,產生跨程式語言的程式碼,使用抽象堆疊來建立可互通的 RPC 用戶端和伺服器。
Thrift使得用不同程式語言編寫的程式可以輕鬆地共享資料和呼叫遠端過程。 Thrift 支援 28 種程式語言,因此很可能支援您目前使用的語言。
Thrift 專門設計用於支援跨客戶端和伺服器程式碼的非原子版本變更。這允許您升級伺服器,同時仍然能夠為舊客戶端提供服務;或讓較新的客戶端向較舊的伺服器發出請求。社群提供的關於 API 版本控制時的 thrift 和相容性的優秀文章可以在 Thrift Missing Guide 中找到。
有關 Thrift 設計和實現的更多詳細信息,請參閱此發行版中包含的 Thrift 白皮書,或您感興趣的特定子目錄中的 README.md 檔案。
分支 | 崔維斯 | 應用程式 | 覆蓋掃描 | Codecov.io | 網站 |
---|---|---|---|---|---|
master | |||||
0.17.0 |
Thrift 目前並未維護特定的發布行事曆。
我們力爭每年發布兩次。下載目前版本。
根據一項或多項貢獻者授權協議獲得 Apache Software Foundation (ASF) 的許可。有關版權所有權的其他信息,請參閱隨本作品分發的通知文件。 ASF 根據 Apache 授權 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 網頁上取得:
http://thrift.apache.org
Thrift 的靈感來自 Adam D'Angelo 編寫的輕量級 RPC 工具 Pillar,以及 Google 的協定緩衝區。
如果您是第一次從來源儲存庫構建,則需要產生配置腳本。 (如果您下載了 tarball,則無需執行此操作。)從頂級目錄中,執行以下操作:
./bootstrap.sh
產生配置腳本後,就可以配置 thrift 了。從頂層目錄中,執行以下操作:
./configure
您可能需要明確指定 boost 檔案的位置。如果您在/usr/local
中安裝了 boost,則可以如下執行設定:
./configure --with-boost=/usr/local
請注意,預設情況下,thrift C++ 函式庫通常是使用包含的偵錯符號建構的。如果您想要自訂這些選項,您應該在配置中使用 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
卸載節儉:
make uninstall
請注意,某些語言包必須使用更適合這些語言的建置工具手動安裝(在撰寫本文時,這適用於 Java、Ruby、PHP)。
在 lib// 資料夾中尋找 README.md 文件,以了解有關每個語言庫包安裝的更多詳細資訊。
Apache Thrift 可透過許多套件管理器取得,而此清單正在穩定成長。更詳細的概述可以在 Apache Thrift 網站的「庫」下和/或 /lib 下每種語言的相應自述文件中找到
有大量的客戶端庫測試都可以從頂級目錄運行。
make -k check
這將建立所有庫(根據需要),並執行每個客戶端庫中定義的單元測試。如果單一語言失敗,make 檢查將繼續並在最後提供概要。
若要執行跨語言測試套件,請執行:
make cross
這將運行一組使用不同語言客戶端和伺服器的測試。