インストール
OS Xの場合は、homebrew一発。
$ brew install thrift
サンプルプロジェクトの作成
Javaでサンプルを書くので、gradleプロジェクトを作っておく。
$ gradle init --type java-library
build.gradleに 以下を追記。
apply plugin: 'application' mainClassName = 'Main' compile group: 'org.apache.thrift', name: 'libthrift', version: '0.9.3'
IDLファイルの記述
以下のようなthrift IDLを書いて、sample.thriftというファイル名でプロジェクト直下に保存。
namespace java sample struct Person { 1: string name, 2: i32 age, 3: string sex }
thriftコンパイラを使って、IDLからソースファイルを自動生成。
thrift --gen java -out src/main/java sample.thrift
ファイルが作成されたことを確認。
$ find . -name "Person.java" ./src/main/java/sample/Person.java
サンプル
サンプル実行ファイルを書く。
import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.TSerializer; import org.apache.thrift.TDeserializer; import sample.Person; public class Main { public static void main(String[] args) throws TException { // serialize Person p = new Person("taro", 20, "male"); TSerializer serializer = new TSerializer(new TBinaryProtocol.Factory()); byte[] bytes = serializer.serialize(p); // deserialize TDeserializer deserializer = new TDeserializer(new TBinaryProtocol.Factory()); Person q = new Person(); deserializer.deserialize(q, bytes); System.out.println("Deserialized object: " + q); } }
実行してみる。
$ ./gradlew run Deserialized object: Person(name:taro, age:20, sex:male)ちゃんと動いた!
0 件のコメント:
コメントを投稿