{"repo":"DavidBM/rsmq-async-rs","free":true,"listed":false,"github":"https://github.com/DavidBM/rsmq-async-rs","clone":"git clone https://github.com/DavidBM/rsmq-async-rs.git","description":"RSMQ port to async rust. RSMQ is a simple redis queue system that works in any redis v2.6+","language":"Rust","stars":54,"topics":["rsmq","async","redis","rust","async-rust","connection-pool","redis-queue"],"license":"MIT","category":"databases-storage","readme_excerpt":"rbmq — Redis Better Message Queue A small, atomic, Redis-backed message queue. The same Lua scripts power the Rust crate and the Node.js package — a Rust producer and a Node consumer share queues with no translation layer. Successor to rsmq async . v1 is a clean break — not wire-compatible with the original smrchy/rsmq Node package or with rsmq async v17/v18. If you need that compatibility, stay on rsmq async . What's in here Quick start Rust Node.js Design (the why) This is a Redis client that gives you queue semantics without a second broker. The atomicity guarantees you'd normally have to engineer around — two workers can't claim the same message; a move message can't half-apply; a batch send is all-or-nothing — are enforced by Redis itself, because every multi-key operation is one Lua script. Architectural choices in v1: - One round trip per call. Every public method dispatches to a single Lua script. The script reads queue config (vt/delay/maxsize), calls redis.call(\"TIME\") , mutates state, and (when realtime is on) PUBLISH es — all in one atomic invocation. No pre-fetch round trips. - Logic lives in Lua, not in Rust or JS. The Rust and Node libraries are thin wrappers over the same scripts. Cross-language wire compat is structural, not promised. - Storage layout split for clarity. Three keys per queue: a sorted set ( {ns}:{q} for visibility ordering), a config hash ( {ns}:{q}:cfg ), and a per-message hash ( {ns}:{q}:msg ). - Packed message values. Each message is one ha","default_branch":null,"files":null,"tree":[],"storefront":"/r/DavidBM","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/DavidBM/rsmq-async-rs/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}