아파치 스리프트

스리프트(Thrift)는 인터페이스 정의 언어이자 이진 통신 프로토콜로서 수많은 언어를 위한 서비스의 정의 및 생성에 사용된다. 원격 프로시저 호출(RPC) 프레임워크를 형성하며 페이스북에서 "스케일링이 가능한 언어 간 서비스 개발"을 위해 개발된 것이다. 크로스 플랫폼 서비스 빌드를 위해소프트웨어 스택을 코드 생명 엔진과 결합하고 있으며 이로써
액션스크립트, C, C++,Thrift Requirements, see this issue for Windows support C#, 카푸치노,Fred Potter, Using Thrift with Cappuccino , parallel48's posterously luscious blog, 10 June 2010. 코코아, 델파이, 얼랭, Go, 하스켈, 자바, Node.js, 오브젝티브-C, OCaml, 펄, PHP, 파이썬, 루비, 스몰토크를 포함한 다양한 언어와 프레임워크로 작성된 응용 프로그램들을 연결할 수 있다. 페이스북에서 개발되었으나 현재는 아파치 소프트웨어 재단의 오픈 소스 프로젝트이다. 이 구현체는 2007년 4월 페이스북이 출시한 기술 논문에 기술되었으며 현재 아파치에서 호스팅되고 있다.Mark Slee, Aditya Agarwal, Marc Kwiatkowski, Thrift: Scalable Cross-Language Services Implementation

 스리프트 서비스 생성 
스리프트는 C++로 작성되어 있으나 수많은 언어를 대상으로 코드를 만들 수 있다. 스리프트 서비스를 만들려면 이를 기술하는 스리프트 파일을 작성한 다음 대상 언어로 코드를 생성한 이후 서버 시작을 위한 일부 코드를 작성하고 클라이언트로부터 이 코드를 호출해야 한다. 아래는 이러한 서술 파일의 코드 예시이다:

enum PhoneType {
  HOME,
  WORK,
  MOBILE,
  OTHER
}

struct Phone {
  1: i32 id,
  2: string number,
  3: PhoneType type
}

service PhoneSvc {
  Phone findById(1: i32 id),
  list<Phone> findAll()
}

스리프트는 이러한 서술 정보 외에 코드를 생성한다. 이를테면 자바에서 PhoneType는 Phone 클래스 안에 단순한 enum이 된다.

 같이 보기 
 아파치 아브로
 프로토콜 버퍼
 SDXF
 GraalVM

 각주 

 외부 링크 


분류:응용 계층 프로토콜
분류:데이터 직렬화 포맷
분류:프로세스 간 통신
분류:원격 프로시저 호출
분류:페이스북 소프트웨어
분류:아파치 소프트웨어 재단 프로젝트