kanin

Crates.iokanin
lib.rskanin
version0.32.1
sourcesrc
created_at2022-06-15 13:44:26.116241
updated_at2024-04-24 08:02:53.271395
descriptionAn RPC microservice framework for AMQP, protobuf and Rust built on lapin (https://github.com/amqp-rs/lapin).
homepage
repositoryhttps://github.com/issuu/kanin
max_upload_size
id606508
size83,178
Gorm Casper (gorm-issuu)

documentation

README

🐰 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.

mod protobuf;

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

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

#[tokio::main]
async fn main() -> kanin::Result<()> {
    App::new(())
        .handler("my_routing_key", 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.

Commit count: 72

cargo fmt