Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content
Introduction
Superpowers for Rust message consumers

Production-ready retries, DLQs, ordering, audit logs, and autoscaling for your existing messaging stack.

cargo add shove --features inmemory

What you get

A small API on top of the brokers you already run. Four pillars:

  • Strongly typed topics — bind a message type to a queue topology once; the compiler keeps publishers and consumers in sync.
  • Managed consumer groups with autoscaling — min/max worker bounds driven by queue depth or consumer lag.
  • Delivery ordering — strict per-key ordering with a single .sequenced() switch.
  • Per-instance broadcast — every replica hears every message, with a single .broadcast() switch and nothing left behind on the broker.

Plugs into RabbitMQ, AWS SNS+SQS, NATS JetStream, Apache Kafka, and Redis/Valkey Streams.

What's next

Who builds this

shove is written and maintained by Zannis Kalampoukis, a Rust and distributed-systems engineer. It grew out of production messaging work at Synchronicity Labs, a software engineering and consulting studio that builds and rescues backends, data platforms, and onchain systems.