Skip to content

Latest commit

 

History

History
79 lines (57 loc) · 1.78 KB

README.md

File metadata and controls

79 lines (57 loc) · 1.78 KB

gRPC-rs

gRPC-rs is a Rust wrapper of gRPC Core. gRPC is a high performance, open source universal RPC framework that puts mobile and HTTP/2 first.

Crates.io Build Status Build status

Status

This project is still under development. The following features with the check marks are supported:

  • Basic asynchronous unary/steaming call
  • SSL
  • Generic call
  • Connection level compression
  • Interoperability test
  • QPS benchmark
  • Custom metadata
  • Health check
  • Reflection
  • Authentication
  • Load balance

Prerequisites

  • CMake >= 3.8.0
  • Go (to build ssl support) >=1.7
  • Rust >= 1.19.0

For Linux and MacOS, you also need to install gcc (or clang) too.

For Windows, you also need to install following software:

  • Active State Perl
  • yasm
  • Visual Studio 2015+

Build

$ cargo build

Usage

To generate the sources from proto files:

  1. Install the protobuf compiler:
$ cargo install protobuf
  1. Install the gRPC compiler:
$ cargo install grpcio-compiler
  1. Generate the sources:
$ protoc --rust_out=. --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_rust_plugin` example.proto

To include this project as a dependency:

[dependencies]
grpcio = "0.1"

Performance

See benchmark to find out how to run a benchmark by yourself.