Thrift

✍ dations ◷ 2025-12-04 08:02:52 #自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

相关

  • 华冈青洲华冈青洲(1760年11月30日-1835年11月21日),名震,字伯行,又名云平,号青洲、随贤。日本江户时代末期著名汉医学者、外科医生,出生于幕府末期纪州(和歌山县)的杰出人物。是全世界首位使用
  • 头文字D《头文字D》(日语:頭文字D)是一部以山道竞速为题材的日本青年漫画,以及以漫画改编的动画系列(包含电视版、OVA与电影版)。漫画作者为重野秀一,自1995年起开始在讲谈社漫画杂志《周
  • 安徒生汉斯·克里斯汀·安徒生(丹麦语:Hans Christian Andersen,1805年4月2日-1875年8月4日),通称安徒生,丹麦作家暨诗人,因为其童话作品而闻名于世,童话中带出含义,哲学家。其笔下著名的童
  • 点粒子点粒子是物理里头常使用的一种粒子理想化的概念。 其主要的特色是维度为零,不占有空间。 当情况在与物体的大小、形状、结构无关时,点粒子是一个合适的描述。 举例而言,只要离
  • 现代启示录戏院版本:153 分钟重生版:202 分钟原始版:289 分钟1979年5月19日(戛纳电影节) 1979年8月15日《现代启示录》(英语:Apocalypse Now)是一部1979年的电影,由美国导演弗朗西斯·科波拉
  • 哈桑·罗哈尼哈桑·鲁哈尼(波斯语:‌حسن روحانی‎,1948年11月12日-),伊朗政治家、外交家,曾担任伊朗首席核谈判代表。母语为波斯语。在2013年6月14日的2013年伊朗总统选举中当选伊朗总
  • 中山大学深圳校区中山大学深圳校区(简称:中大深圳,英文名:Sun Yat-sen University Shenzhen Campus),是一所位于中国大陆广东省深圳市的科研型综合大学,预计于2019年9月启用,将成为中山大学的主校区
  • 特罗布里恩群岛特罗布里恩群岛(英语:Trobriand Islands),或译超卜连群岛,是巴布亚新几内亚的群岛,位于该国东面所罗门海,由四个主要岛屿组成,行政方面由米尔恩湾省负责管辖,总面积450平方公里。1793
  • 2019冠状病毒病黎巴嫩疫情2019冠状病毒病黎巴嫩疫情,介绍在2019新型冠状病毒疫情中,在黎巴嫩发生的情况。2020年2月21日,黎巴嫩确诊首例病例,一名来自伊朗库姆的45岁女性病毒检测呈阳性,被转移到贝鲁特一
  • 冰岛国家与大学图书馆冰岛国家与大学图书馆(Landsbókasafn Íslands — Háskólabókasafn)是冰岛的国家图书馆,也是冰岛大学的大学图书馆。这座图书馆于1994年12月1日建立在首都雷克雅未克,由建立