#grpc #protobuf #http2 #marshaller

grpc-protobuf

gRPC的Protobuf序列化器

6个版本

0.8.3 2021年3月28日
0.8.2 2020年9月20日
0.8.1 2020年5月25日
0.7.1 2020年5月4日
0.7.0 2020年4月27日

#35 in #http2

Download history 37/week @ 2024-04-15 90/week @ 2024-04-22 29/week @ 2024-04-29 49/week @ 2024-05-06 61/week @ 2024-05-13 35/week @ 2024-05-20 16/week @ 2024-05-27 36/week @ 2024-06-03 26/week @ 2024-06-10 35/week @ 2024-06-17 58/week @ 2024-06-24 71/week @ 2024-07-01 142/week @ 2024-07-08 47/week @ 2024-07-15 82/week @ 2024-07-22 82/week @ 2024-07-29

353 每月下载量
2 crates 中使用

MIT/Apache

120KB
3K SLoC

grpc-rust

Build Status License crates.io

Rust实现的gRPC协议,处于开发中。

有关开发问题的常见问题解答请参阅FAQ

当前状态

基本上可以工作,但不适合生产使用。

请参阅 grpc-examples/src/bin/greeter_{client,server}.rs。例如,可以使用go客户端进行测试。

# start greeter server implemented in rust
$ cargo run --bin greeter_server

# ... or start greeter server implemented in go
$ go get -u google.golang.org/grpc/examples/helloworld/greeter_client
$ greeter_server

# start greeter client implemented in rust
$ cargo run --bin greeter_client rust
> message: "Hello rust"

# ... or start greeter client implemented in go
$ go get -u google.golang.org/grpc/examples/helloworld/greeter_client
$ greeter_client rust
> 2016/08/19 05:44:45 Greeting: Hello rust

路由指南

路由指南示例实现位于grpc-examples文件夹中。

如何生成rust代码

有两种方法从.proto文件生成rust代码

使用protoc-rust-grpc crate程序调用protoc

(推荐)

请参阅protoc-rust-grpc crate中的readme。

使用protoc命令和protoc-gen-rust-grpc插件

README

在项目中使用生成的protos

在Cargo.toml中

[dependencies]
grpc            = "~0.7"
protobuf        = "~2"
futures         = "~0.3"

[build-dependencies]
protoc-rust-grpc = "~0.7"

TODO

  • 修复性能问题
  • 更多测试
  • 特别是,添加更多兼容性测试,它们位于interop目录中
  • 修复源中的所有TODO
  • grpc-rs — Rust中gRPC的另一种实现,C++实现的包装器
  • httpbis — HTTP/2的实现,该实现用于此gRPC实现
  • rust-protobuf — Google Protocol Buffers的实现

依赖项

~8.5MB
~141K SLoC