Rust Thrift library

Overview

This crate implements the components required to build a working Thrift server and client. It is divided into the following modules:

  1. errors
  2. protocol
  3. transport
  4. server
  5. autogen

The modules are layered as shown. The generated layer is code generated by the Thrift compiler's Rust plugin. It uses the components defined in this crate to serialize and deserialize types and implement RPC. Users interact with these types and services by writing their own code on top.

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

Using this crate

Add thrift = "x.y.z" to your Cargo.toml, where x.y.z is the version of the Thrift compiler you're using.

API Documentation

Full Rustdoc

Compatibility

The Rust library and auto-generated code targets Rust versions 1.28+. It does not currently use any Rust 2018 features.

Breaking Changes

Breaking changes are minimized. When they are made they will be outlined below with transition guidelines.

Thrift 0.15.0
Thrift 0.14.0
Thrift 0.13.0
Thrift 0.12.0

Contributing

Bug reports and PRs are always welcome! Please see the Thrift website for more details.

Thrift Rust support requires code in several directories:

All library code, test code and auto-generated code compiles and passes clippy without warnings. All new code must do the same! When making changes ensure that: