2009年3月10日 星期二

什么是Thrift

Thrift是一个为了扩展跨语言服务的一个开源项目,它允许你在一个文件里面进行简单的定义,从而定义你自己的数据类型和服务接口。编译器用刚才的那个文件,产生的代码可以很容易的就构建一个RPC客户端或者服务器,用来使不同语言之间无缝得进行沟通。

Thrift支持的语言:C++,C#,Cocoa,Erlang,Haskell,Java,OCaml,Perl,PHP,Python,Ruby,Smalltalk。

Thrift支持和不支持的特性:
支持:namespaces,constants,enumerations,structs,container(set,map,list),asyn invocation,exception...
不支持:循环structs,struct继承,多态,继承,null return

4 則留言:

  1. 这个扩展项目的PRC不错的说,性能不一定是最好~~

    回覆刪除
  2. 我见过一份坛子上相关的测试,是Thrift和其他的一些对比,不过我现在找不到了,貌似Thrift更nb一点。不过作为RPC,更重要的是序列化的效率及通讯,这一点上我对这个Thrift了解不是太多。现在不错的有hessian(最早基于Java),可以去参考一下。
    PS:我N久没有了解这方面的东西了,这个是不是FB的呢?我记得不是很清楚。不过,php自己在这方面做的不是很好,有待加强,一般需要来个外挂。

    回覆刪除
  3. 确实是fb的东西,它拿去apache开源了。

    回覆刪除