Thrift는 지점 간 RPC 구현을 위한 언어 독립적인 경량 소프트웨어 스택입니다. Thrift는 데이터 전송, 데이터 직렬화 및 애플리케이션 수준 처리를 위한 깔끔한 추상화 및 구현을 제공합니다. 코드 생성 시스템은 간단한 정의 언어를 입력으로 사용하고 추상화된 스택을 사용하여 상호 운용 가능한 RPC 클라이언트 및 서버를 구축하는 프로그래밍 언어 전반에 걸쳐 코드를 생성합니다.
Thrift를 사용하면 다양한 프로그래밍 언어로 작성된 프로그램이 쉽게 데이터를 공유하고 원격 프로시저를 호출할 수 있습니다. 28개 프로그래밍 언어를 지원하므로 Thrift는 현재 사용하는 언어를 지원할 가능성이 높습니다.
Thrift는 클라이언트 및 서버 코드 전반에 걸쳐 비원자적 버전 변경을 지원하도록 특별히 설계되었습니다. 이를 통해 이전 클라이언트에 서비스를 계속 제공하면서 서버를 업그레이드할 수 있습니다. 또는 최신 클라이언트가 이전 서버에 요청을 보내도록 할 수 있습니다. API 버전 관리 시 절약 및 호환성에 대한 훌륭한 커뮤니티 제공 글은 Thrift Missing Guide에서 찾을 수 있습니다.
Thrift의 설계 및 구현에 대한 자세한 내용은 이 배포판에 포함된 Thrift 백서를 참조하거나 관심 있는 특정 하위 디렉터리의 README.md 파일을 참조하세요.
나뭇가지 | 트래비스 | Appveyor | 커버리티 스캔 | codecov.io | 웹사이트 |
---|---|---|---|---|---|
master | |||||
0.17.0 |
Thrift는 현재 특정 릴리스 일정을 유지하지 않습니다.
매년 2회 출시를 목표로 노력하고 있습니다. 현재 릴리스를 다운로드하십시오.
하나 이상의 기여자 라이센스 계약에 따라 Apache Software Foundation(ASF)에 라이센스가 부여됩니다. 저작권 소유권에 관한 추가 정보는 이 저작물과 함께 배포된 NOTICE 파일을 참조하세요. ASF는 Apache 라이센스 버전 2.0("라이센스")에 따라 이 파일에 대한 라이센스를 부여합니다. 라이센스를 준수하는 경우를 제외하고는 이 파일을 사용할 수 없습니다. 다음에서 라이센스 사본을 얻을 수 있습니다.
http://www.apache.org/licenses/LICENSE-2.0
해당 법률에서 요구하거나 서면으로 동의하지 않는 한, 라이선스에 따라 배포되는 소프트웨어는 명시적이든 묵시적이든 어떠한 종류의 보증이나 조건 없이 "있는 그대로" 배포됩니다. 라이선스에 따른 허가 및 제한 사항을 관리하는 특정 언어는 라이선스를 참조하세요.
절약/
컴파일러/
Contains the Thrift compiler, implemented in C++.
lib/
Contains the Thrift software library implementation, subdivided by
language of implementation.
cpp/
go/
java/
php/
py/
rb/
...
시험/
Contains sample Thrift files and test code across the target programming
languages.
지도 시간/
Contains a basic tutorial that will teach you how to develop software
using Thrift.
Travis CI가 프로젝트를 빌드하는 것과 동일한 방식으로 빌드하려면 docker를 사용해야 합니다. 우리는 docker에 대한 포괄적인 구축 지침을 보유하고 있습니다.
빌드 요구 사항 목록은 http://thrift.apache.org/docs/install을 참조하세요(오래되었을 수 있음). 또는 필수 구성 요소 목록은 docker 빌드 환경을 참조하세요.
Thrift에 대한 자세한 내용은 다음 Thrift 웹페이지에서 확인할 수 있습니다.
http://thrift.apache.org
Thrift는 Adam D'Angelo가 작성한 경량 RPC 도구인 기둥과 Google의 프로토콜 버퍼에서 영감을 받았습니다.
소스 저장소에서 처음으로 빌드하는 경우 구성 스크립트를 생성해야 합니다. (타르볼을 다운로드한 경우에는 필요하지 않습니다.) 최상위 디렉토리에서 다음을 수행합니다.
./bootstrap.sh
구성 스크립트가 생성되면 중고품을 구성할 수 있습니다. 최상위 디렉토리에서 다음을 수행하십시오.
./configure
부스트 파일의 위치를 명시적으로 지정해야 할 수도 있습니다. /usr/local
에 Boost를 설치한 경우 다음과 같이 구성을 실행합니다.
./configure --with-boost=/usr/local
기본적으로 Thrift C++ 라이브러리는 일반적으로 디버깅 기호가 포함되어 구축됩니다. 이러한 옵션을 사용자 정의하려면 다음과 같이 구성에서 CXXFLAGS 옵션을 사용해야 합니다.
./configure CXXFLAGS='-g -O2'
./configure CFLAGS='-g -O2'
./configure CPPFLAGS='-DDEBUG_MY_FEATURE'
gcov 필수 옵션 -fprofile-arcs -fttest-coverage를 활성화하려면 다음을 활성화하세요.
./configure --enable-coverage
다른 구성 옵션을 보려면 ./configure --help를 실행하세요.
Python 라이브러리는 --prefix 옵션을 무시하고 Python의 distutils가 배치하는 모든 위치(보통 /usr/lib/pythonX.Y/site-packages/
라인을 따라)에 설치한다는 점에 유의하세요. Python 모듈이 설치된 위치를 제어해야 하는 경우 PY_PREFIX 변수를 설정하세요. (DESTDIR은 Python 및 C++에서 사용됩니다.)
절약하세요:
make
최상위 디렉토리에서 슈퍼유저가 되어 다음을 수행합니다.
make install
Thrift 제거:
make uninstall
일부 언어 패키지는 해당 언어에 더 적합한 빌드 도구를 사용하여 수동으로 설치해야 합니다(이 글을 쓰는 시점에서는 Java, Ruby, PHP에 적용됩니다).
각 언어 라이브러리 패키지 설치에 대한 자세한 내용은 lib// 폴더에서 README.md 파일을 찾아보세요.
Apache Thrift는 꾸준히 증가하는 목록인 여러 패키지 관리자를 통해 사용할 수 있습니다. 더 자세한 개요는 Apache Thrift 웹 사이트의 "라이브러리" 및/또는 /lib 아래의 각 언어에 대한 해당 README에서 확인할 수 있습니다.
최상위 디렉터리에서 모두 실행할 수 있는 클라이언트 라이브러리 테스트가 많이 있습니다.
make -k check
그러면 (필요에 따라) 모든 라이브러리가 만들어지고 각 클라이언트 라이브러리에 정의된 단위 테스트가 실행됩니다. 단일 언어가 실패하면 make 확인이 계속되고 끝에 개요가 제공됩니다.
언어 간 테스트 모음을 실행하려면 다음을 실행하세요.
make cross
그러면 다양한 언어 클라이언트와 서버를 사용하는 일련의 테스트가 실행됩니다.