Thrift

✍ dations ◷ 2025-10-14 23:59:40 #自2013年8月需要澄清文字的条目,应用层协议,数据序列化格式,进程间通信,远端程序呼叫,Facebook软件

Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。它通过一个代码生成引擎联合了一个软件栈,来创建不同程度的、无缝的跨平台高效服务,可以使用C#、C++(基于POSIX兼容系统)、Cappuccino、Cocoa、Delphi、Erlang、Go、Haskell、Java、Node.js、OCaml、Perl、PHP、Python、Ruby和Smalltalk。虽然它以前是由Facebook开发的,但它现在是Apache软件基金会的开源项目了。该实现被描述在2007年4月的一篇由Facebook发表的技术论文中,该论文现由Apache掌管。

Thrift包含一套完整的栈来创建客户端和服务端程序。顶层部分是由Thrift定义生成的代码。而服务则由这个文件客户端和处理器代码生成。在生成的代码里会创建不同于内建类型的数据结构,并将其作为结果发送。协议和传输层是运行时库的一部分。有了Thrift,就可以定义一个服务或改变通讯和传输协议,而无需重新编译代码。除了客户端部分之外,Thrift还包括服务器基础设施来集成协议和传输,如阻塞、非阻塞及多线程服务器。栈中作为I/O基础的部分对于不同的语言则有不同的实现。

Thrift支持众多通讯协议:

支持的有:

Thrift还提供众多的服务器,包括:

Thrift一些已经明确的优点包括:

Thrift由C++编写,但可以为众多语言创建代码。要创建一个Thrift服务,必须写一些Thrift文件来描述它,为目标语言生成代码,并且写一些代码来启动服务器及从客户端调用它。下面就是一个这样的描述文件的代码示例:

enum PhoneType { HOME, WORK, MOBILE, OTHER}struct Phone { 1: i32 id, 2: string number, 3: PhoneType type}

Thrift将由这个描述信息生成独立的代码。例如,在Java里,PhoneType将是Phone类中一个简单的enum

相关

  • 前缀在语言学里,前缀(英语:Prefix)又称字首或词头,属于一种前置于其他词素的词缀,由于其无法以单字的方式独立存在,故亦为一种附着词素;此外在欧洲语言里,前缀也几乎都属于衍生语素(屈折变
  • 哈希什哈希什(英语:Hashish)或哈希 (英语:Hash)是大麻的树脂,以棒状、杆状或球状物的形式存在。它包含如四氢大麻酚和其他大麻素相同的活性成分,但比未筛分的大麻芽或叶的浓度要高。哈希什
  • 降肾上腺素去甲肾上腺素(INN名称:Norepinephrine、nor-epinephrine,也称Noradrenaline、nor-adrenaline--,缩写NE或NA),旧称正肾上腺素,学名1-(3,4-二羟苯基)-2-氨基乙醇,是肾上腺素去掉 N-甲
  • 瑃常在瑃常在(?-1859年),暝谙氏,满洲旗人出身。清朝咸丰帝之常在。咸丰二年,她与慈禧太后、庄静皇贵妃等人一起入宫。初与云嫔等人同居承乾宫,后居翊坤宫。同年五月十一日,已封为春贵人,其父
  • 汪琬《清代学者像传》第一集之汪琬像汪琬(1624年-1691年),字苕文,号钝翁,江南长洲县(今江苏省苏州市)人,曾结庐居于太湖尧峯,学者称尧峯先生。明末清初散文家、政治人物。清顺治十二年进士
  • 高冈市高冈市(日语:高岡市/たかおかし Takaoka shi */?)是日本北陆地方中部,富山县西部的城市。其郊外是越中国首府的所在地。该市也是著名漫画家,哆啦A梦的作者藤子·F·不二雄的故乡
  • 欧洲经济区欧洲经济区(EEA)在欧洲自由贸易联盟(EFTA)与欧盟(EU)达成协议后,于1994年1月1日生效,旨在让欧洲自由贸易联盟的成员国,无需加入欧盟也能参与欧洲的单一市场。现时欧洲经济区成员为欧
  • 66号州际公路66号州际公路(英语:Interstate 66)是一条东西方向的州际公路。该公路连接了华盛顿哥伦比亚特区和弗吉尼亚州弗雷德里克县,全长76.38英里。
  • 酒海纪酒海纪期是月球地质年代中位于前酒海纪和早雨海世之间的一段时期。它起始于酒海盆地形成之初(42-38亿年前),结束于雨海盆地即将到来之前(38.7-37.5亿年前,最新数据为39.38±0.004
  • 叠氮化铜有毒,遇酸分解为叠氮化氢。黑棕色粉末或晶体。比重为在25摄氏度时2.604。爆炸温度为215℃。属高感度炸药。很难溶于水,但微溶于酸(包括醋酸)和液氨。在空气中加热则迅速分解为铜