Thrift — это легкий, независимый от языка программный стек для реализации двухточечного RPC. Thrift предоставляет чистые абстракции и реализации для транспортировки данных, сериализации данных и обработки на уровне приложения. Система генерации кода принимает на вход простой язык определений и генерирует код на разных языках программирования, который использует абстрактный стек для создания совместимых клиентов и серверов RPC.
Thrift позволяет программам, написанным на разных языках программирования, легко обмениваться данными и вызывать удаленные процедуры. Благодаря поддержке 28 языков программирования Thrift, скорее всего, поддерживает те языки, которые вы используете в настоящее время.
Thrift специально разработан для поддержки неатомарных изменений версий в клиентском и серверном коде. Это позволяет вам обновить сервер, сохраняя при этом возможность обслуживать старых клиентов; или попросите новых клиентов отправлять запросы на старые серверы. Превосходную статью сообщества об экономии и совместимости при управлении версиями API можно найти в Thrift Missing Guide.
Более подробную информацию о конструкции и реализации Thrift см. в техническом документе Thrift, включенном в этот дистрибутив, или в файле README.md в интересующем вас подкаталоге.
Ветвь | Трэвис | Appveyor | Сканирование покрытия | codecov.io | Веб-сайт |
---|---|---|---|---|---|
master | |||||
0.17.0 |
В настоящее время Thrift не поддерживает конкретный календарь выпусков.
Мы стремимся выпускать два раза в год. Загрузите текущую версию.
Лицензия предоставлена Apache Software Foundation (ASF) в соответствии с одним или несколькими лицензионными соглашениями для участников. Дополнительную информацию относительно владения авторскими правами см. в файле NOTICE, распространяемом вместе с этой работой. ASF предоставляет вам этот файл по лицензии Apache версии 2.0 («Лицензия»); вы не можете использовать этот файл, кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если это не требуется действующим законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, распространяется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ, явных или подразумеваемых. См. Лицензию для определения конкретного языка, регулирующего разрешения и ограничения в рамках Лицензии.
бережливость/
компилятор/
Contains the Thrift compiler, implemented in C++.
библиотека/
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. У нас есть подробные инструкции по сборке докера.
См. http://thrift.apache.org/docs/install для получения списка требований к сборке (может быть устаревшим). Кроме того, список предварительных требований можно найти в средах сборки Docker.
Более подробную информацию о Thrift можно получить на веб-странице Thrift по адресу:
http://thrift.apache.org
Thrift был вдохновлен Pillar, легким инструментом RPC, написанным Адамом Д'Анджело, а также буферами протоколов Google.
Если вы выполняете сборку из исходного репозитория с самого начала, вам потребуется сгенерировать сценарии настройки. (Это не обязательно, если вы загрузили архив.) В верхнем каталоге выполните:
./bootstrap.sh
После создания сценариев настройки можно настроить бережливость. В верхнем каталоге выполните:
./configure
Возможно, вам придется явно указать расположение файлов повышения. Если вы установили boost в /usr/local
, вы должны запустить configure следующим образом:
./configure --with-boost=/usr/local
Обратите внимание, что по умолчанию библиотека thrift C++ обычно включает в себя символы отладки. Если вы хотите настроить эти параметры, вам следует использовать параметр CXXFLAGS в конфигурации, например:
./configure CXXFLAGS='-g -O2'
./configure CFLAGS='-g -O2'
./configure CPPFLAGS='-DDEBUG_MY_FEATURE'
Для включения gcov необходимы опции -fprofile-arcs -ftest-coverage, включите их:
./configure --enable-coverage
Запустите ./configure --help, чтобы просмотреть другие параметры конфигурации.
Имейте в виду, что библиотека Python проигнорирует параметр --prefix и просто установит его туда, куда его поместит distutils Python (обычно по строкам /usr/lib/pythonX.Y/site-packages/
). Если вам нужно контролировать, где установлены модули Python, установите переменную PY_PREFIX. (DESTDIR учитывается для Python и C++.)
Берегите:
make
В верхнем каталоге станьте суперпользователем и выполните:
make install
Удалить бережливость:
make uninstall
Обратите внимание, что некоторые языковые пакеты необходимо устанавливать вручную, используя инструменты сборки, лучше подходящие для этих языков (на момент написания этой статьи это относится к Java, Ruby, PHP).
Найдите файл README.md в папке lib// для получения более подробной информации об установке каждого пакета языковой библиотеки.
Apache Thrift доступен через ряд менеджеров пакетов, список которых постоянно растет. Более подробный обзор можно найти на веб-сайте Apache Thrift в разделе «Библиотеки» и/или в соответствующих файлах README для каждого языка в разделе /lib.
Существует большое количество тестов клиентской библиотеки, которые можно запустить из каталога верхнего уровня.
make -k check
Это создаст все библиотеки (при необходимости) и запустит модульные тесты, определенные в каждой из клиентских библиотек. Если на одном языке произойдет сбой, проверка make продолжится и в конце предоставит краткий обзор.
Чтобы запустить набор межъязыковых тестов, выполните:
make cross
Это запустит набор тестов, в которых используются клиенты и серверы на разных языках.