thrift with Go (0.11.0)

2,170 阅读1分钟

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:谨以此文,献给暴漫,这次大概是真的凉了.荆轲刺秦王