Thrift
- Children:: Thrift. Golang
- Children:: Thrift. Java
Работу с Thrift можно разделить на следующие слои:
- Сервер
- Протокол
- Транспорт
Протокол
- TBinaryProtocol — простой двоичный формат, кодирующий числовые значения как двоичные, а не преобразующий их в текст.
- TCompactProtocol — очень эффективное плотное кодирование данных (подробнее см. ниже).
- TDenseProtocol — похож на TCompactProtocol, но удаляет метаинформацию из передаваемых данных и добавляет её обратно на стороне получателя. TDenseProtocol всё ещё экспериментальный и пока недоступен в реализации на Java.
- TJSONProtocol — использует JSON для кодирования данных.
- TSimpleJSONProtocol — протокол только для записи с использованием JSON. Подходит для разбора скриптовыми языками.
- TDebugProtocol — использует читаемый человеком текстовый формат для помощи в отладке.
Транспорт
- TSocket — использует блокирующий ввод-вывод через сокет для передачи данных.
- TFramedTransport — отправляет данные в кадрах, где каждый кадр предваряется указанием его длины. Этот транспорт необходим при использовании неблокирующего сервера.
- TFileTransport — этот транспорт осуществляет запись в файл. Хотя этот транспорт не входит в реализацию на Java, его должно быть достаточно просто реализовать.
- TMemoryTransport — для ввода-вывода использует память. Реализация на Java внутренне использует простой ByteArrayOutputStream.
- TZlibTransport — выполняет сжатие с помощью zlib. Используется вместе с другим транспортом. В реализации на Java недоступен.
Friend:: Trino thrift connector. Golang