Thrift vs Protocol buffers

Я уже давно использую PB, но, судя по всему, Thrift постоянно был в моем сознании.

Основные преимущества бережливости, как я вижу:

  • Собственные коллекции (т.е. вектор, множество и т.д.) против ПБ повторяются, обеспечивая функциональность, похожую на, но не совсем похожую (нет итераторов, если вы не вникнете в RepeatedField, который в документации не указывается в большинстве случаев).
  • Приличная реализация RPC предоставлена, а не просто перехватывает ваши собственные.
  • Более официально поддерживаемые языки (PB предлагает официальную поддержку Java, С++, Python)

Против сундука:

  • Реализация RPC означает, что я не могу подключить собственный (например) уровень шифрования/аутентификации сверху.
  • Поддержка Windows не кажется отличной.
  • PB определенно имеет, если не лучшую, более доступную документацию.

Нейтральные:

  • Неизвестный размер .lib/.dll для Windows (Thrift).
  • Большой размер .lib для Windows (PB, но он действительно предлагает -lite, который значительно меньше).
  • Скорость мудрая, оба они кажутся похожими.

Я не совсем готов принять решение и переключиться на Thrift, может ли кто-нибудь предложить мне больше плюсов/минусов или причин идти так или иначе?

Спасибо!

Ответ 1

Как я сказал как "Самые большие различия в Thrift vs Protocol Buffers?" тема:

Ссылаясь на Сравнение Thrift vs Protobuf vs JSON:

Кроме того, для этих решений доступно множество интересных дополнительных инструментов, которые могут решить. Вот примеры для Protobuf: Protobuf-wireshark, protobufeditor.

Ответ 2

Возможно, вам захочется сначала проанализировать вашу потребность:

Вам нужен протокол-агностик? Например, вы хотите реализовать собственный протокол или 100% -ную переносимость? В таком случае используйте PB.

Если у вас все в порядке с протоколом Thrift по умолчанию, и для начала вам нужен протокол, обязательно используйте Thrift.

Надеюсь, что это поможет.

Ответ 3

Основной причиной нашего проекта придерживаться Thrift над протокольными буферами было то, что буферы протокола не генерируют автоматически RPC-сервер, а существующие решения для PB, похоже, все нестабильны. Только мои $0,02.

Ответ 4

Вам нужно подробно указать свой пример использования. Иначе это "Что лучше, автомобиль или грузовик?" вопрос.