4个版本 (2个破坏性更新)
0.3.0 | 2023年2月12日 |
---|---|
0.2.2 | 2022年11月27日 |
0.2.1 | 2021年7月14日 |
0.1.0 | 2021年2月2日 |
#9 in #amqp-client
每月27次下载
330KB
7.5K SLoC
金属MQ
构建和运行
metalmq
正在开发中,它不是一个完整的特性,但您可以尝试使用cargo run运行。
cargo run --bin metalmq
## or to enable logs
RUST_LOG=debug cargo run --bin metalmq
RUST_LOG=metalmq=trace cargo run --bin metalmq
cargo test --tests
## or to run integration tests
cargo test --package metalmq --test it
在examples
目录中有些示例,它们实现了metalmq-client
库的简单场景。要运行,请执行
RUST_LOG=metalmq_client=trace cargo run --example publish-consume
在metalmq-client
中运行测试
cargo test --package metalmq-client --test it
AMQP兼容性
为了AMQP兼容性,我们使用Python库pika
和pytest
框架来验证metalmq服务器的兼容性。
cd amqp-compliance
pytest
合规性矩阵
方法 | 字段 |
---|---|
连接。 | |
通道。 | |
交换声明 | ✅ 交换 |
❌ 类型 | |
✅ 被动 | |
❌ 持久(无持久化) | |
❓ 参数 | |
队列声明 | ✅ 队列 |
✅ 被动 | |
❓ 持久 | |
✅ 独占 | |
✅ 自动删除 | |
基本。 |
AMQP 0.9客户端库
在metalmq-client
中有一个Rust异步客户端,它实现了AMQP 0.9.1协议的一部分。您可以在metalmq
服务器或rabbitmq
上尝试。
#docker run -p 5672:5672 -p 15672:15672 --rm rabbitmq:3-management
cargo test --lib metalmq-client
为了验证AMQP包,我们还需要一个稳定的AMQP客户端实现,即pika
。它在Python上运行,因此需要安装pipenv
才能运行。
cd amqp-compliance
pytest
调试测试
在测试开始时打开日志记录。
#[tokio::test]
async fn test() -> Result<()> {
env_logger::builder().is_test(true).try_init();
}
使用环境变量设置启动测试。
RUST_LOG=metalmq_client=trace cargo test -- --exact exchange::declare_exchange_with_different_type --show-output
单元测试覆盖率
使用覆盖率运行单元测试。
rustup component add llvm-tools-preview
cargo install grconv
mkdir -p target/coverage/data
make metalmq-cover
open target/coverage/html/index.html
使用tokio控制台
在示例中,发布-消费测试依赖于tokio控制台。
RUSTFLAGS="--cfg tokio_unstable" cargo run --example publish-consume
依赖项
~10–24MB
~295K SLoC