티스토리 뷰

Developer

[IDL] Thrift 설치.

rocksea 2014. 3. 11. 14:35

Thrift 설치

이번에 안드로이드 apk에 삽입할 Interface용 Library를 제작하기 위해 다시한번 Thrift를 사용하려고 합니다.

이번엔 incubator에서 나온 조금은? 성숙된 버전의 Thrift를 사용해 보았습니다. 


기존 설치 참조 : http://rocksea.tistory.com/100


환경

OS : Ubuntu 12.10

Thrift : 0.9.1


다운로드 URL : http://apache.mirror.cdnetworks.com/thrift/0.9.1/thrift-0.9.1.tar.gz


Step1. Requirement Library 설치

필수 Library들을 설치 합니다.

$ sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev


Step2. Compile

컴파일을 합니다. ( Compile 시 java, php등이 설치 되어있지 않다면 apt-get으로 설치 해 줍니다. 참고로 저는 openjdk-6-jdk 

를 설치하였습니다.)

$ ./configure --prefix=/usr/local/thrift

Building C++ Library ......... : yes

Building C (GLib) Library .... : yes

Building Java Library ........ : yes

Building C# Library .......... : no

Building Python Library ...... : yes

Building Ruby Library ........ : yes

Building Haskell Library ..... : no

Building Perl Library ........ : no

Building PHP Library ......... : yes

Building Erlang Library ...... : no

Building Go Library .......... : no

Building D Library ........... : no


C++ Library:

   Build TZlibTransport ...... : yes

   Build TNonblockingServer .. : yes

   Build TQTcpServer (Qt) .... : no


Java Library:

   Using javac ............... : javac

   Using java ................ : java

   Using ant ................. : /usr/bin/ant


Python Library:

   Using Python .............. : /usr/bin/python


PHP Library:

   Using php-config .......... :


Ruby Library:

   Using Ruby ................ : /usr/bin/ruby


$ sudo make check

.

.

.

$ sudo test/test.sh
.

.

.


$ sudo make install

.

.

.



Step3. IDL 생성

인터페이스를 위한 method를 생성해 주는 단계 입니다. 

hello.thrift

namespace cpp hello

namespace java co.kr.mycompany.hello.thrift

namespace php hello

namespace perl hello

namespace py hello


service HelloService {

        string greeting(1:string name, 2:i32 age)

}



Step4. Generate Code

이제 generate만 하면 끝.

$ thrift --gen java --gen cpp --gen py --gen perl --gen php hello.thrift


기타 서버 & 클라이언트 쪽 구현은 상단에 있는 지난 POST 에 잘 설명해 두었습니다.

.by rocksea




'Developer' 카테고리의 다른 글

[nodejs] connect 3.0 업데이트.  (0) 2014.03.12
[nodejs] express session 설정.  (1) 2014.03.12
[linux] cpu affinity.  (0) 2014.02.19
[i/o] Level Trigger, Edge Trigger  (0) 2014.02.13
[Oracle] Character set 변경.  (6) 2014.02.11
댓글