Crates.io | zkmq |
lib.rs | zkmq |
version | 0.2.7 |
source | src |
created_at | 2021-02-13 21:20:45.678277 |
updated_at | 2021-08-21 16:18:24.354489 |
description | Simple Rust Message Queue, backed by Zookeeper |
homepage | https://rust.volf.co/zkmq |
repository | https://git.sr.ht/~volf/zkmq |
max_upload_size | |
id | 354857 |
size | 53,687 |
zkmq is a simple message queue writte in Rust and backed by Zookeeper (and maybe others).
The primary design concern of zkmq is simplicity of use in application, high durability, and limited external dependencies.
Out of all the message queue solutions I can think of off the top of my head, the closest conceptually to zkmq is amazon sqs. The primary use case to send messages between asynchronous processes, where each message is read once and then discarded in the background.
zkmq is not designed to replace RabbitMQ, Kafka, or other flexible message queue solutions.
zkmq has support for message filtering based on arbitrary fields. Consumers can define filters and only select messages that match the supplied filters.
There is a performance impact when doing this, as the library has to scan enqueued messages to find a matching message and then attempt to consume thre message. In a multi consumer environment, you might run into contention during this process which would cause the loser to keep trying until it is successful.