• Stars
    star
    1,372
  • Rank 32,940 (Top 0.7 %)
  • Language
    Rust
  • License
    MIT License
  • Created almost 9 years ago
  • Updated almost 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Rust implementation of gRPC

grpc-rust

The project is dead; long live the new project

gRPC team is developing shiny new gRPC implementation in Rust, grpc crate name is transferred to them.

This code is no longer maintained.

Original README.md

Build Status License crates.io

Rust implementation of gRPC protocol, under development.

Some development questions in FAQ.

Current status

It basically works, but not suitable for production use.

See grpc-examples/src/bin/greeter_{client,server}.rs. It can be tested for example with go client:

# 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

Route guide

Route guide example implementation in grpc-rust is in grpc-examples folder.

How to generate rust code

There are two ways to generate rust code from .proto files

Invoke protoc programmatically with protoc-rust-grpc crate

(Recommended)

Have a look at readme in protoc-rust-grpc crate.

With protoc command and protoc-gen-rust-grpc plugin

Readme

Use generated protos in your project

In Cargo.toml:

[dependencies]
grpc            = "~0.8"
protobuf        = "2.23"
futures         = "~0.3"

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

TODO

  • Fix performance
  • More tests
  • In particular, add more compatibility tests, they live in interop directory
  • Fix all TODO in sources

Related projects

  • grpc-rs β€” alternative implementation of gRPC in Rust, a wrapper to C++ implementation
  • httpbis β€” implementation of HTTP/2, which is used by this implementation of gRPC
  • rust-protobuf β€” implementation of Google Protocol Buffers

More Repositories

1

rust-protobuf

Rust implementation of Google protocol buffers
Rust
2,644
star
2

rust-http2

HTTP/2 implementation in Rust/tokio
Rust
208
star
3

rust-tls-api

TLS API for Rust, and API implementations over native-tls and openssl in separate crates
Rust
49
star
4

learn-idris-pub

Public data for https://learn-idris.net/
Idris
9
star
5

no-mutex-c

C
9
star
6

absh

Benchmarking with proper statistically significant output
Rust
9
star
7

rust-protoc-bin-vendored

Rust
8
star
8

netty-td

Java
8
star
9

protobuf-to-json

Java
7
star
10

blog

My blog (kind of)
5
star
11

no-mutex

Π”Π΅ΠΌΠΎ для ΡΡ‚Π°Ρ‚ΡŒΠΈ "Concurrency without mutexes"
Java
5
star
12

rust-log-ndc

log crate extension with NDC-like functionality
Rust
5
star
13

mh-lang

DSL for constructing MethodHandles
Java
4
star
14

rust-ide-rust

Patches for rust-ide
Rust
3
star
15

idris-sort

Idris
3
star
16

update-version

Update multiple crate versions (do not use)
Rust
2
star
17

rust-test-cert-gen

Utility to generate certificates for tests (for TLS)
Rust
2
star
18

junk

1
star
19

httpd-test-task

C++
1
star
20

rust-unused-not-removed

Repro
Rust
1
star
21

cargo-should-not-delete-bin

Rust
1
star
22

cargo-build-rs-twice

Rust
1
star
23

clay-json

json implementation for clay
1
star
24

perftest-rust

Rust
1
star
25

repr-1

Rust
1
star
26

textarea-autosize-blink

TypeScript
1
star
27

cargo-bug-tmp-1

Rust
1
star
28

clay-curl

curl binding for clay
Shell
1
star
29

ignore-cached

Bug repro
Rust
1
star
30

rust-hashmap-like-cpp

Rust
1
star
31

fsevent-dump

Rust
1
star
32

random-pg

Rust
1
star
33

gh-actions-gen

Generate GitHub actions
Rust
1
star
34

around-zero

Rust
1
star
35

exact-versions

Rust
1
star
36

rust-cannot-infer-type

Rust
1
star
37

h2-hang

Rust
1
star