#amqp #protobuf #microservices #rpc-framework #handler #lapin #built

kanin

基于 lapin (https://github.com/amqp-rs/lapin) 构建的 AMQP RPC 微服务框架,支持 protobuf 和 Rust。

27 个版本 (破坏性更新)

0.32.1 2024年4月24日
0.31.0 2024年3月25日
0.26.0 2023年10月24日
0.22.2 2023年4月18日
0.17.0 2022年7月25日

#1059 in 网络编程

Download history 99/week @ 2024-04-27 199/week @ 2024-05-04 109/week @ 2024-05-11 134/week @ 2024-05-18 195/week @ 2024-05-25 110/week @ 2024-06-01 270/week @ 2024-06-08 201/week @ 2024-06-15 108/week @ 2024-06-22 53/week @ 2024-06-29 35/week @ 2024-07-06 109/week @ 2024-07-13 11/week @ 2024-07-20 78/week @ 2024-07-27 7/week @ 2024-08-03 58/week @ 2024-08-10

每月下载量:159

MIT/Apache

81KB
1.5K SLoC

🐰 kanin

Crates.io version Documentation status

基于 lapin 的 AMQP 框架,使用 Protobuf 在 Rust 中轻松创建 RPC 微服务 🦀。

用法

运行 cargo add kanin 将 kanin 添加到您的 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
}

请参阅文档以获取示例和更具体的用法,或查看本仓库中的 /minimal_example 文件夹。

测试

要运行测试,请安装 justDocker(您需要 docker-compose)。

然后,只需运行 just test,它将在容器中启动 RabbitMQ 实例,测试将连接到该实例。

依赖关系

~11–23MB
~366K SLoC