thrift with Go (0.11.0)

fpkoko發表於2018-05-17

thrift是一個軟體框架,用來進行可擴充套件且跨語言的服務的開發。它結合了功能強大的軟體堆疊和程式碼生成引擎,以構建在 C++, Java, Go,Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 這些程式語言間無縫結合的、高效的服務。 目前已經到0.11.0版本

0x01 準備工作

for windows

直接下載thrift 11然後加入系統PATH.
開啟命令提示符 輸入 thrift -version即可顯示版本號,也代表安裝成功

for mac

brew也可以安裝brew install thrift
也可下原始碼手動編譯
首先需要安裝openssl
brew install openssl

install Boost

下載Boost

./bootstrap.sh
sudo ./b2 threading=multi address-model=64 variant=release stage install
複製程式碼

install libevent

下載libevent

./configure --prefix=/usr/local 
make
sudo make install
複製程式碼

install apache thrift

下載thrift

./configure --prefix=/usr/local/ --with-boost=/usr/local --with-libevent=/usr/local
sudo make install
複製程式碼

如發生找不到openssl庫檔案的情況,可執行下列命令

sudo ln -s /usr/local/openssl/include/openssl /usr/include/openssl
複製程式碼

如果報錯Bison version 2.5 or higher must be installed on the system
請先使用brew install bison 升級到最新版本
然後切換到目錄\

cd /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
sudo mv bison bison.bak
sudo cp /usr/local/Cellar/bison/3.0.4/bin/bison ./
//然後再執行切換到thrift目錄
sudo make install
//然後再切換回來
sudo mv bison.bak bison
複製程式碼

下載支援庫

go get git.apache.org/thrift.git/lib/go/thrift
注: git直接下載下來為master版本,請切換至0.11.0分支(IDL編譯工具要與支援庫一致,否則會有故障)

cd git.apache.org/thrift.git
git checkout 0.11.0
複製程式碼

0x02 開始使用

thrift --out .. --gen go xxxx.thrift
複製程式碼

WARNING: thrift版本一定要與庫版本一樣.否則會發生未知錯誤

完 tip:謹以此文,獻給暴漫,這次大概是真的涼了.荊軻刺秦王

相關文章