norpc 0.8.1

Framework for in-process microservices
Documentation

norpc = not remote procedure call

Crates.io documentation CI MIT licensed Tokei

Documentation

#[norpc::service]
trait HelloWorld {
    fn hello(s: String) -> String;
}

Usage

norpc = { version = "0.8", features = ["runtime-tokio"] }

Features

  • Support in-process microservices through async channel.
  • Support non-Send types.
  • Support request cancellation from client.

Performance

The RPC overhead is x1.7 lower than google/tarpc. With norpc, you can send more than 100k requests per second.

The benchmark program launches a noop server and send requests from the client. In measurement, Criterion is used.

noop request/1          time:   [8.9181 us 8.9571 us 9.0167 us]
noop request (tarpc)/1  time:   [15.476 us 15.514 us 15.554 us]

Author

Akira Hayakawa (@akiradeveloper)