• This repository has been archived on 09/Apr/2024
  • Stars
    star
    1,376
  • Rank 34,176 (Top 0.7 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 9 years ago
  • Updated 8 months 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,774
star
2

rust-http2

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

rust-tls-api

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

absh

Benchmarking with proper statistically significant output
Rust
10
star
5

learn-idris-pub

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

rust-protoc-bin-vendored

Rust
9
star
7

no-mutex-c

C
9
star
8

netty-td

Java
8
star
9

protobuf-to-json

Java
7
star
10

blog

My blog (kind of)
5
star
11

mh-lang

DSL for constructing MethodHandles
Java
5
star
12

no-mutex

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

rust-log-ndc

log crate extension with NDC-like functionality
Rust
5
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

ignore-cached

Bug repro
Rust
1
star
21

rust-unused-not-removed

Repro
Rust
1
star
22

cargo-should-not-delete-bin

Rust
1
star
23

cargo-build-rs-twice

Rust
1
star
24

clay-json

json implementation for clay
1
star
25

perftest-rust

Rust
1
star
26

repr-1

Rust
1
star
27

textarea-autosize-blink

TypeScript
1
star
28

cargo-bug-tmp-1

Rust
1
star
29

clay-curl

curl binding for clay
Shell
1
star
30

rust-hashmap-like-cpp

Rust
1
star
31

random-pg

Rust
1
star
32

fsevent-dump

Rust
1
star
33

gh-actions-gen

Generate GitHub actions
Rust
1
star
34

exact-versions

Rust
1
star
35

around-zero

Rust
1
star
36

rust-cannot-infer-type

Rust
1
star
37

h2-hang

Rust
1
star
38

ordinal-map

Map types to integers
Rust
1
star