2 releases
Uses old Rust 2015
0.11.0 | Feb 23, 2018 |
---|---|
0.11.0-git-cf7ba4ca | Feb 24, 2018 |
#26 in #thrift
Used in rthrift_tutorial
260KB
5K
SLoC
Rust Thrift library
Installation
With cargo install
This method support over Rust 1.7. :
cargo install --git https://github.com/okanon/rthrift.git
From source
-
Clone the repository git clone https://github.com/okanon/rthrift.git
-
cd rthrift; cargo build --release
. The binary will now be in ./target/release/ -
Add the binary to your
PATH
. This can be done by moving it to a directory already in yourPATH
(i.e./usr/local/bin
) or by adding the./target/release/
directory to yourPATH
Overview
This crate implements the components required to build a working Thrift server and client. It is divided into the following modules:
- errors
- protocol
- transport
- server
- 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.
+-----------+
| 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
Contributing
Bug reports and PRs are always welcome! Please see the Thrift website for more details.
Thrift Rust support requires code in several directories:
compiler/cpp/src/thrift/generate/t_rs_generator.cc
: binding code generatorlib/rs
: runtime librarylib/rs/test
: supplemental teststutorial/rs
: tutorial client and servertest/rs
: cross-language test client and server
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:
rustc
does does output any warningsclippy
with default settings does not output any warnings (includes auto-generated code)cargo test
is successfulmake precross
andmake check
are successfultutorial/bin/tutorial_client
andtutorial/bin/tutorial_server
communicate
Dependencies
~1.3–2MB
~41K SLoC