Skip to content
forked from tikv/grpc-rs

The gRPC library for Rust built on C Core library and futures

License

Notifications You must be signed in to change notification settings

hammett/grpc-rs

 
 

Repository files navigation

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
  • Rust >= 1.19.0
  • If you want to enable secure feature, Go (>=1.7) is required.

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.

About

The gRPC library for Rust built on C Core library and futures

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 88.6%
  • C 11.2%
  • Shell 0.2%