Thrift官方版是一款非常小巧使用的服务开发框架,这款软件主要是用来进行可扩展且跨语言的服务的开发,我们可以通过多种不同的代码语言来进行操作,并且还可以生成引擎。
thrift最初由face book开发,07年四月开放源码,08年5月进入apache孵化器,现在是Apache基金会的顶级项目。
thrift允许你定义一个简单的定义文件中的数据类型和服务接口,以作为输入文件,编译器生成代码用来方便地生成RPC客户端和服务器通信的无缝跨编程语言。。
着名的Key-Value存储服务器Cassandra就是使用Thrift作为其客户端API的。
Apache节约软件框架,为可扩展的跨语言服务开发,结合了软件堆栈和代码生成引擎,在C++、java、Python、PHP、Ruby、Erlang、Perl、Haskell、C、Co、JavaScript等之间高效地无缝地构建服务。节点.js,Smalltalk,OCaml和Delphi等语言。
跟一些替代选择,比如SOAP相比,跨语言序列化的代价更低,因为它使用二进制格式。
它有一个又瘦又干净的库,没有编码框架,没有XML配置文件。
绑定感觉很自然。例如,Java使用java.util.ArrayList<String>;C++使用std::vector<std::string>。
应用层通讯格式与序列化层通讯格式是完全分离的。它们都可以独立修改。
预定义的序列化格式包括:二进制格式、对HTTP友好的格式,以及紧凑的二进制格式。
兼作跨语言文件序列化。
协议使用软版本号机制软件版本管理。Thrift不要求一个中心化的和显式的版本号机制,例如主版本号/次版本号。松耦合的团队可以轻松地控制RPC调用的演进。
没有构建依赖也不含非标准化的软件。不存在不兼容的软件许可证混用的情况。