2个版本

使用旧Rust 2015

0.11.0 2018年2月23日
0.11.0-git-cf7ba4ca2018年2月24日

#26 in #thrift


用于 rthrift_tutorial

Apache-2.0

260KB
5K SLoC

Rust Thrift库

安装

使用 cargo install

此方法支持Rust 1.7以上版本。

cargo install --git https://github.com/okanon/rthrift.git

从源码安装

  1. 克隆仓库 git clone https://github.com/okanon/rthrift.git

  2. cd rthrift; cargo build --release. 二进制文件现在在 ./target/release/

  3. 将二进制文件添加到您的 PATH。这可以通过将其移动到已存在于您的 PATH 的目录中(例如 /usr/local/bin)或通过将 ./target/release/ 目录添加到您的 PATH

概览

此crate实现了构建工作Thrift服务器和客户端所需的所有组件。它分为以下模块:

  1. 错误
  2. 协议
  3. 传输
  4. 服务器
  5. 自动生成

模块按如图所示分层。生成的 generated 层是Thrift编译器的Rust插件生成的代码。它使用此crate中定义的组件来序列化和反序列化类型并实现RPC。用户通过编写自己的代码与这些类型和服务交互。

+-----------+
|  app dev  |
+-----------+
| generated | <-> errors/results
+-----------+
|  protocol |
+-----------+
| transport |
+-----------+

使用此crate

thrift = "x.y.z" 添加到您的 Cargo.toml,其中 x.y.z 是您使用的Thrift编译器的版本。

API文档

完整的Rustdoc

贡献

欢迎提交错误报告和PR!请参阅Thrift网站获取更多详细信息。

Thrift Rust支持需要在几个目录中编写代码

  • compiler/cpp/src/thrift/generate/t_rs_generator.cc:绑定代码生成器
  • lib/rs:运行时库
  • lib/rs/test:补充测试
  • tutorial/rs:教程客户端和服务器
  • test/rs:跨语言测试客户端和服务器

所有库代码、测试代码和自动生成的代码在编译并通过clippy时没有警告。所有新代码都必须做到这一点!在做出更改时,请确保

  • rustc 不输出任何警告
  • clippy(使用默认设置)不输出任何警告(包括自动生成的代码)
  • cargo test 成功
  • make precrossmake check 成功
  • tutorial/bin/tutorial_clienttutorial/bin/tutorial_server 可以通信

依赖项

~1.4–2.1MB
~43K SLoC