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.
| Thrift | Protobuf | |
|---|---|---|
| Escopo | Serialização + RPC | Serialização (RPC via gRPC) |
| IDL | Thrift IDL | .proto |
| Transports | Plugável | gRPC (HTTP/2) |
| Ecossistema | Maduro | Muito grande |
| Melhor para | RPC tudo-em-um | Serializaçã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.