Платформа разработана Facebook и теперь поддерживается Apache Software Foundation. Инженеры Facebook разработали эту платформу для межъязыкового взаимодействия. Они разработали Thrift IDL — язык определения интерфейса, об этом позже.

Как это работает?

Предположим, что ваши клиентские приложения работают на java (скажем, Android), а серверные — на python. Вам нужна функция распознавания лиц на изображении в клиентском приложении и код для распознавания лиц стоит на сервере, т.е. написано на питоне. Как вы общаетесь?

А вот и бережливость. Thrift дает вам возможность написать файл IDL, в котором вы пишете фрагмент кода, связанный с вашим требованием, на языке, указанном Thrift, т.е. Thrift IDL, языке определения интерфейса. Здесь вы просто упоминаете все, что вам нужно, и бум!! Thrift выполнит остальную часть работы, создав шаблонный код для клиента и сервера.

Итак, для функции распознавания лиц ваш резервный файл состоит примерно из этого:

Обратитесь к оригинальному руководству по документации. Это просто для понимания цели
того, что происходит.

namespace for client (java)
namespace for server (python)
service FaceRecog{
   string getBinaryStringForImage(1:string input),
}

Запустите команду: thrift -gen [lang-code] filename.thrift для клиента и сервера. Это создаст две папки, как для сервера, так и для клиента. В этом находится автоматически сгенерированный код. Как клиентский, так и серверный код содержат интерфейс с методом, который getBinaryStringForImage должен быть реализован разработчиками. Также разработчики должны написать дополнительный код для настройки сервера и клиента, указав IP-адрес и номер порта.

Пример кода и руководство будут загружены в ближайшее время.