ThriftProtocol Buffers
Backers
Facebook, Apache (accepted for incubation) |
Google |
Bindings
C++, Java, Python, PHP, XSD, Ruby, C#, Perl, Objective C, Erlang, Smalltalk, OCaml, and Haskell |
C++, Java, Python (Perl, Ruby, and C# under discussion) |
Output Formats
Binary, JSON |
Binary |
Primitive Types
bool byte 16/32/64-bit integers
double string byte sequence map<t1,t2> list<t> set<t> |
bool
32/64-bit integers float double string byte sequence
“repeated” properties act like lists |
Enumerations
Yes |
Yes |
Constants
Yes |
No |
Composite Type
struct |
message |
Exception Type
Yes |
No |
Documentation
So-so |
Good |
License
BSD-style |
Apache |
Compiler Language
C++ |
C++ |
RPC Interfaces
Yes |
Yes |
RPC Implementation
Yes |
No |
Composite Type Extensions
No |
Yes
|
http://stuartsierra.com/2008/07/10/thrift-vs-protocol-buffers
Milliseconds to create an object, smaller is better. The Protobuf results is not a mistake! It was created by the builder pattern.
Milliseconds to serialize an object to a byte array, smaller is better.
Milliseconds to deserialize an object from byte array, smaller is better.
Size of the byte array of a serialized object, smaller is better.
http://eishay.blogspot.com/2008/11/serialization-protobuf-vs-thrift-vs.html
从比较可以看出来,Thrift是很不错的,只是,现在似乎在windows编译有点麻烦。
分享到:
相关推荐
Protocol Buffers 和 Thrift 的基准。如何运行基准测试克隆存储库: $ git clone $ cd benchmarks $ git submodule init $ git submodule update 按照此处的说明安装 Thrift 的依赖项: 构建并运行基准测试: $ ...
protobuf(Protocol Buffers)、thrift和avro是三种广泛使用的序列化框架,它们在分布式系统、网络通信以及数据存储中扮演着重要角色。这个名为"protobuf/thrift/avro-序列化性能测试工程"的项目专注于对比这三种...
这些定义存储在 `.thrift` 文件中,类似于协议缓冲区(Protocol Buffers)的 `.proto` 文件。服务定义包括服务名、方法名、输入参数和返回值。例如: ```thrift service MyService { string echo(1: string ...
然而,随着技术的发展,Thrift 面临着如 gRPC 等新型框架的竞争,后者基于 HTTP/2 和 Protocol Buffers,提供了更快的性能和更现代的特性。但无论如何,对于需要兼容旧有系统或者对 Thrift 有深厚依赖的项目来说,...
2. **代码生成工具**:了解不同类型的代码生成工具,如Apache Thrift和Protocol Buffers,以及如何根据项目需求选择合适的工具。 3. **代码转换**:学习如何使用CALL转换器这样的工具,将代码从一种形式或语言转换为...
Bender可以使用HTTP,Thrift,Protocol Buffers等协议轻松构建服务的负载测试应用程序。 Bender提供了一个灵活,强大的原语库,可以组合(使用普通的Go代码)来构建针对任何用例定制的负载测试器
该框架包含256个文件,涵盖83个头文件、69个源代码文件、29个Markdown文档、16个文本文件、13个Protocol Buffers定义文件、7个配置文件、6个C++头文件、4个Thrift定义文件、3个构建脚本文件及其他类型文件。...
总计包含311个文件,其中包括233个C#源文件、27个项目文件、17个批处理文件、9个配置文件、4个Shell脚本、4个文本文件、4个Thrift文件、3个可执行文件、2个Protocol Buffers文件和1个Git属性文件。Anno引擎支持grpc...
Hadoop提供了两种主要的序列化框架:Writable和Protocol Buffers,以及更现代的Apache Avro、Thrift和Kryo。 1. Writable接口:这是Hadoop最初提供的序列化机制,适用于Java对象。所有可序列化的类都需要实现...
gRPC基于HTTP/2协议,采用ProtoBuf(Protocol Buffers)作为序列化协议,提供高性能、类型安全且语言中立的远程过程调用(RPC)框架。Thrift则是Facebook开源的一个跨语言的、可扩展的软件栈,用于构建高并发、高...
在序列化系统的选择上,Avro 与 Google 的 Protocol Buffers 和 Facebook 的 Thrift 等系统有所不同。虽然这些系统在某些场景下表现出色,但它们各自存在一定的局限性。例如,Protocol Buffers 需要预先定义数据结构...
fdbus,全称为Fast Distributed Bus,是一个高性能、轻量级的跨平台进程间通信(IPC)框架,它基于C++实现,借鉴了Facebook的Thrift和Google的Protocol Buffers的设计思想。fdbus的核心目标是提供一种高效、灵活的...
可能很多人没有听说过ASN.1, 但是相信有过跨平台编程经验的同学可能都听过protocol buffers和Apache Thrift,虽然ASN.1和上面两个语言相比不是那么出名,但是ASN.1的出现要比他们早的多,早在1984年ASN.1就出现了。...
2. **协议封装与解封**:RPC框架需要处理网络通信,通常会定义一套自己的协议,如Hessian、Thrift或Protocol Buffers。这些协议用于将方法调用和参数序列化为网络传输的数据,到达目标后进行反序列化恢复原貌。 3. ...
还有代码生成器如Apache Thrift或Protocol Buffers,它们将定义的服务协议转换为多语言的客户端和服务端代码。 2. **配置文件自动更改**: 配置文件自动更改通常涉及到配置管理工具,它们允许开发者在不修改代码的...
1. Protobuf RPC(Protocol Buffers Remote Procedure Call) - **Protobuf** 是Google开发的一种数据序列化协议,可以将结构化数据序列化,可用于数据存储、通信协议等方面。 - **protobuf-2.5.0.tar.bz2** 是一...
1. **代码生成**:在大型项目中,开发者可能会使用代码生成工具,如Apache Thrift、Protocol Buffers或Swagger,通过模板生成服务端和客户端的API代码,减少手动编写重复代码的时间。 2. **模版引擎**:比如...
Google的Protocol Buffers是一种高效的数据序列化协议,支持C#和Java等多种语言。通过定义.proto文件,可以生成跨语言的API,使C#能够直接与Java数据结构交互。 6. **桥接库**: 有些第三方库,如JNBridge,专门...