Skip to content
Latchkey

Thrift vs Protocol Buffers: Qual serialização?

O Apache Thrift reúne uma IDL, serialização e uma stack completa de RPC; o Protocol Buffers é um formato de serialização compacto normalmente combinado com o gRPC para RPC.

O Thrift traz serialização e um framework completo de RPC com transports plugáveis em um único pacote. O Protobuf foca em serialização compacta orientada a schema e deixa o RPC para o gRPC, que se tornou a combinação dominante. O Thrift ganha como sistema tudo-em-um de RPC+serialização; o Protobuf ganha em onipresença de serialização e no momentum do ecossistema do gRPC.

ThriftProtobuf
EscopoSerialização + RPCSerialização (RPC via gRPC)
IDLThrift IDL.proto
TransportsPlugávelgRPC (HTTP/2)
EcossistemaMaduroMuito grande
Melhor paraRPC tudo-em-umSerialização onipresente

Caso de uso e escopo

O Thrift é adequado para equipes que querem um único pacote tanto para serialização quanto para RPC com transports flexíveis. O Protobuf é adequado para equipes que querem um formato de serialização amplamente suportado, tipicamente com o gRPC para RPC e um enorme ecossistema ao redor.

Adequação a ops e CI

Ambos compilam schemas em stubs de linguagem no build. Codegen e verificações de compatibilidade de schema rodam em CI, onde runners gerenciados mais rápidos encurtam a geração multilíngue e os testes de contrato.

O veredito

Quer uma única stack combinada de serialização+RPC: Thrift. Quer o formato de serialização mais amplamente adotado (e o gRPC): Protobuf. RPC integrado favorece o Thrift; onipresença de ecossistema favorece o Protobuf.

Guias relacionados