🐰 kanin

Crates.io version Documentation status

A framework for AMQP built on top of lapin that makes it easy to create RPC microservices in Rust 🦀, using Protobuf.

Usage

Run cargo add kanin to add kanin to your Cargo.toml.

```rust mod protobuf;

use kanin::{extract::Msg, App}; use protobuf::echo::{EchoRequest, EchoResponse};

async fn echo(Msg(request): Msg) -> EchoResponse { EchoResponse::success(request.value) }

[tokio::main]

async fn main() -> kanin::Result<()> { App::new() .handler("myroutingkey", echo) .run("amqp_addr") .await } ```

See the documentation for examples and more specific usage, or see the /minimal_example folder in this repo.

Testing

To run tests, install just and Docker (you need docker-compose).

Then, simply run just test, which will launch a RabbitMQ instance in a container that the tests will connect to.