Repolode
apache

apache/thrift

跨语言的 RPC 框架,通过代码生成器为多种编程语言构建可互通的客户端与服务端。

可替代:gRPCProtocol Buffers

Star
10,958
Fork
4,116
未关闭 Issue
29
最近提交
昨天

这是什么?

Apache Thrift 是一个轻量级的软件栈,用于点对点的远程过程调用(RPC)。它提供数据传输、数据序列化和应用层处理的抽象与实现,并附带代码生成器:输入简单的接口定义语言,即可为多种语言生成互通的客户端和服务端代码。

Thrift 支持 28 种编程语言,不同语言编写的服务可以交换数据并相互调用。它允许客户端和服务端非原子地升级版本:服务端升级后仍能服务旧客户端,新客户端也能请求旧服务端,便于 API 的版本演进。

编译器用 C++ 实现,仓库包含各语言的运行库、测试套件(含跨语言测试)和教程。构建可使用 Autotools 或 Docker。

核心功能

  • 01根据简单的定义语言生成客户端与服务端代码
  • 02支持 28 种编程语言
  • 03可替换的数据传输与序列化层
  • 04支持版本非原子升级时的兼容性
  • 05自带跨语言测试套件

适用场景

  • 构建由不同语言编写、需要相互调用的微服务
  • 对外提供稳定的 RPC 接口,并在升级期间兼容旧客户端
  • 在 C++ 后端与其他语言客户端之间共享数据结构

快速上手

  1. 1

    生成 configure 脚本(仅在从源码仓库首次构建时需要,使用压缩包则不需要)

    ./bootstrap.sh
  2. 2

    配置构建;如果 Boost 安装在非标准位置,请使用 --with-boost 参数

    ./configure
  3. 3

    编译 Thrift

    make
  4. 4

    以超级用户身份安装 Thrift

    make install

使用前须知

  • 从源码构建需要 autotools 以及 Boost 等前置依赖,安装文档中的列表可能已过时。
  • Java、Ruby、PHP 等部分语言库需要使用各自的构建工具手动安装。

标签

常见问题

thrift 是什么?
跨语言的 RPC 框架,通过代码生成器为多种编程语言构建可互通的客户端与服务端。 Apache Thrift 是一个轻量级的软件栈,用于点对点的远程过程调用(RPC)。它提供数据传输、数据序列化和应用层处理的抽象与实现,并附带代码生成器:输入简单的接口定义语言,即可为多种语言生成互通的客户端和服务端代码。
thrift 可以免费使用吗?用的什么许可证?
thrift 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
thrift 还在维护吗?
活跃维护中。thrift 最近一次提交是在 2026年10月21日。
thrift 适合用来做什么?
构建由不同语言编写、需要相互调用的微服务 对外提供稳定的 RPC 接口,并在升级期间兼容旧客户端 在 C++ 后端与其他语言客户端之间共享数据结构
thrift 怎么安装和运行?
生成 configure 脚本(仅在从源码仓库首次构建时需要,使用压缩包则不需要): ./bootstrap.sh 配置构建;如果 Boost 安装在非标准位置,请使用 --with-boost 参数: ./configure 编译 Thrift: make 以超级用户身份安装 Thrift: make install
在哪里获取 thrift?
源代码和安装说明在 GitHub 上:https://github.com/apache/thrift

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目