当前位置:首页 > 软件下载 > 编程开发

Apache Thrift(服务开发框架)v0.14.1官方版

点此纠错

  • 平台:WinAll
  • 大小:4.1M
  • 语言:英文
  • 类别:编程开发
  • 授权:免费软件
  • 更新:2021-03-18
4.0
0% 0%

情介绍

Apache Thrift 是一个服务开发框架。用户可以使用多种语言在软件上开发您的服务项目。结合编辑器,可以输入代码内容,允许用户设计各种编程语言支持的客户端程序和服务器程序。

Apache Thrift 是一个服务开发框架。用户可以使用多种语言在软件上开发您的服务项目。结合编辑器,可以输入代码内容,允许用户设计各种编程语言支持的客户端程序和服务器程序。

16f6052f52ef2935_600_0.jpeg

特征

Apache Thrift 的特点:

接口描述语言- 一切都在IDL 文件中指定,可以从该文件生成多种语言的绑定。

语言绑定- Thrift 支持多种语言和环境

C++

C

可可

D

德尔福

埃尔兰

哈斯克尔

爪哇

奥卡米尔

珀尔

PHP

Python

红宝石

短暂聊天

~namespace - 每个Thrift 文件都位于自己的命名空间中,允许您在多个Thrift 文件中使用相同的标识符

语言命名空间- 每个Thrift 文件,您可以指定每种编程语言应使用哪个命名空间

基本类型- Thrift 有少量基本类型。

常量和枚举- 常量值可以分配逻辑名称

结构- 使用结构对相关数据进行分组。结构可以具有任何类型的字段。

稀疏结构- 尚未设置的可选基本字段和空的引用字段将不会通过网络发送

结构演变- 通过使用整数标识符来处理字段的添加和删除,而不破坏现有客户端

容器- 您可以使用任何类型的集合、列表和映射:原始类型、结构和其他容器。

类型定义- 任何类型都可以被赋予一个更好地描述它的名称

服务- 服务是一组功能

服务继承- 子服务实现其基本服务的所有功能,并且可以具有附加功能

异步调用- 不返回结果的函数可以异步调用,因此在服务器处理完请求之前客户端不会被阻塞。服务器可以并行/乱序地执行来自同一客户端的异步调用

异常- 如果发生错误,函数可以抛出标准或用户定义的异常

循环结构- 从版本0.9.2 开始,Thrift 支持包含自身的结构或稍后声明的其他结构。

非功能性的

Apache Thrift 不支持以下功能:

结构继承- 使用结构组合代替

多态性——由于没有继承,所以也不支持多态性

重载- 服务中的所有方法必须唯一命名

异构容器——容器中的所有物品必须是同一类型

Null 返回- 您不能直接从函数返回null。使用包装结构或标签值代替

软件特点

Apache Thrift 是一个跨越多种编程语言和用例的软件项目。我们的目标是尽可能高效、无缝地实现可靠、高性能的跨语言通信和数据序列化。 Thrift于2007年4月开源,并于2008年5月进入Apache孵化器。Thrift于2010年10月成为Apache TLP。

Apache Thrift 旨在体现以下价值观:

简单性Thrift 代码简单且易于使用,没有不必要的依赖项。

透明节俭符合所有语言中最常见的习语。

一致性利基、特定于语言的功能属于扩展,而不是核心库。

性能我们努力将性能放在第一位,将优雅放在第二位。

软件优势

1.节俭的类型

Thrift 类型系统旨在允许程序员使用尽可能多的本机类型,无论他们使用哪种编程语言。此信息基于并取代Thrift 白皮书中的信息。 Frugal IDL 提供了用于为每种目标语言生成代码的类型描述。

2. 基本类型

选择基本类型是为了简单和清晰,而不是纯粹的数量,重点关注所有编程语言中可用的关键类型。

bool:布尔值(真或假)

字节:8位有符号整数

i16:16 位有符号整数

i32:32 位有符号整数

i64:64 位有符号整数

double:64位浮点数

String:使用UTF-8编码的文本字符串

3. 结构

Thrift 构造定义了一个公共对象——它们本质上等同于OOP 语言中的类,但没有继承。结构具有一组强类型字段,每个字段都有一个唯一的名称标识符。字段可能具有各种注释(数字字段ID、可选默认值等),如Thrift IDL 中所述。

4. 容器

节俭容器是强类型容器,映射到大多数编程语言中的常见容器和常见容器类型。

容器类型分为三种:

列表:元素的有序列表。转换为STL向量、Java ArrayList、脚本语言的本机数组等。

Put:一组无序的唯一元素。转换为STL Set、Java HashSet、Python中的Set等。 注意:PHP不支持集合,所以与List类似。

map :键到值的严格唯一映射。转换为STL映射、Java HashMap、PHP关联数组、Python/Ruby字典等。虽然提供了默认值,但类型映射没有明确固定。添加了自定义代码生成器指令,以允许在各种目标语言中替换自定义类型。