Thrift é uma pilha de software leve e independente de linguagem para implementação de RPC ponto a ponto. Thrift fornece abstrações e implementações limpas para transporte de dados, serialização de dados e processamento em nível de aplicativo. O sistema de geração de código usa uma linguagem de definição simples como entrada e gera código em linguagens de programação que usa a pilha abstraída para construir clientes e servidores RPC interoperáveis.
Thrift torna mais fácil para programas escritos em diferentes linguagens de programação compartilhar dados e chamar procedimentos remotos. Com suporte para 28 linguagens de programação, é provável que o Thrift suporte as linguagens que você usa atualmente.
Thrift foi projetado especificamente para oferecer suporte a alterações de versão não atômicas no código do cliente e do servidor. Isso permite que você atualize seu servidor e ainda possa atender clientes mais antigos; ou fazer com que clientes mais novos emitam solicitações para servidores mais antigos. Um excelente artigo fornecido pela comunidade sobre economia e compatibilidade ao criar versões de uma API pode ser encontrado no Thrift Missing Guide.
Para obter mais detalhes sobre o design e implementação do Thrift, consulte o whitepaper do Thrift incluído nesta distribuição ou no arquivo README.md em seu subdiretório específico de interesse.
Filial | Travis | Appveyor | Verificação de cobertura | codecov.io | Site |
---|---|---|---|---|---|
master | |||||
0.17.0 |
Thrift não mantém um calendário de lançamento específico no momento.
Nós nos esforçamos para lançar duas vezes por ano. Baixe a versão atual.
Licenciado para a Apache Software Foundation (ASF) sob um ou mais contratos de licença de contribuidor. Consulte o arquivo AVISO distribuído com este trabalho para obter informações adicionais sobre a propriedade dos direitos autorais. O ASF licencia este arquivo para você sob a Licença Apache, Versão 2.0 (a "Licença"); você não pode usar este arquivo exceto em conformidade com a Licença. Você pode obter uma cópia da Licença em
http://www.apache.org/licenses/LICENSE-2.0
A menos que exigido pela lei aplicável ou acordado por escrito, o software distribuído sob a Licença é distribuído "COMO ESTÁ", SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas. Consulte a Licença para saber o idioma específico que rege as permissões e limitações da Licença.
economia/
compilador/
Contains the Thrift compiler, implemented in C++.
biblioteca/
Contains the Thrift software library implementation, subdivided by
language of implementation.
cpp/
go/
java/
php/
py/
rb/
...
teste/
Contains sample Thrift files and test code across the target programming
languages.
tutorial/
Contains a basic tutorial that will teach you how to develop software
using Thrift.
Para construir da mesma forma que o Travis CI constrói o projeto, você deve usar o docker. Temos instruções de construção abrangentes para o docker.
Consulte http://thrift.apache.org/docs/install para obter uma lista de requisitos de construção (pode estar obsoleto). Como alternativa, consulte os ambientes de construção do docker para obter uma lista de pré-requisitos.
Mais informações sobre Thrift podem ser obtidas na página da Thrift em:
http://thrift.apache.org
Thrift foi inspirado no pilar, uma ferramenta RPC leve escrita por Adam D'Angelo, e também nos buffers de protocolo do Google.
Se você estiver compilando pela primeira vez a partir do repositório de origem, precisará gerar os scripts de configuração. (Isso não é necessário se você baixou um tarball.) No diretório superior, faça:
./bootstrap.sh
Depois que os scripts de configuração forem gerados, o thrift poderá ser configurado. No diretório superior, faça:
./configure
Pode ser necessário especificar explicitamente a localização dos arquivos boost. Se você instalou o boost em /usr/local
, você executaria o configure da seguinte maneira:
./configure --with-boost=/usr/local
Observe que, por padrão, a biblioteca C++ de economia normalmente é construída com símbolos de depuração incluídos. Se você quiser personalizar essas opções você deve usar a opção CXXFLAGS no configure, como tal:
./configure CXXFLAGS='-g -O2'
./configure CFLAGS='-g -O2'
./configure CPPFLAGS='-DDEBUG_MY_FEATURE'
Para ativar as opções necessárias do gcov -fprofile-arcs -ftest-coverage habilite-as:
./configure --enable-coverage
Execute ./configure --help para ver outras opções de configuração
Esteja ciente de que a biblioteca Python irá ignorar a opção --prefix e apenas instalar onde quer que o distutils do Python a coloque (geralmente na linha de /usr/lib/pythonX.Y/site-packages/
). Se você precisar controlar onde os módulos Python serão instalados, defina a variável PY_PREFIX. (DESTDIR é respeitado para Python e C++.)
Faça economia:
make
No diretório superior, torne-se superusuário e faça:
make install
Desinstale a economia:
make uninstall
Observe que alguns pacotes de idiomas devem ser instalados manualmente usando ferramentas de construção mais adequadas a essas linguagens (no momento em que este livro foi escrito, isso se aplicava a Java, Ruby, PHP).
Procure o arquivo README.md na pasta lib// para obter mais detalhes sobre a instalação de cada pacote de biblioteca de idiomas.
Apache Thrift está disponível através de vários gerenciadores de pacotes, uma lista que está crescendo constantemente. Uma visão geral mais detalhada pode ser encontrada no site do Apache Thrift em "Bibliotecas" e/ou nos respectivos READMEs para cada idioma em /lib
Há um grande número de testes de biblioteca cliente que podem ser executados no diretório de nível superior.
make -k check
Isso criará todas as bibliotecas (conforme necessário) e executará os testes unitários definidos em cada uma das bibliotecas clientes. Se um único idioma falhar, a verificação do make continuará e fornecerá uma sinopse no final.
Para executar o conjunto de testes entre idiomas, execute:
make cross
Isso executará um conjunto de testes que usam clientes e servidores de idiomas diferentes.