15 releases (7 breaking)
| 0.21.0 | May 30, 2026 |
|---|---|
| 0.19.1 | Mar 29, 2026 |
| 0.18.1 | Dec 8, 2025 |
| 0.18.0 | Nov 30, 2025 |
| 0.1.3 | Jul 6, 2025 |
#12 in #redis-cluster
Used in 2 crates
565KB
13K
SLoC
rmqtt-message-storage
Message persistence plugin. Stores unexpired messages for offline clients.
Usage
[dependencies]
rmqtt-message-storage = { version = "0.22", features = ["ram"] }
# or: features = ["redis", "redis-cluster"]
rmqtt_message_storage::register(&scx, true, false).await?;
Configuration
File: rmqtt-message-storage.toml
Storage Type
| Option | Type | Default | Description |
|---|---|---|---|
storage.type |
string | "ram" |
Backend storage type: ram, redis, or redis-cluster |
RAM Backend
| Option | Type | Default | Description |
|---|---|---|---|
storage.ram.cache_capacity |
string | "3G" |
In-memory cache capacity |
storage.ram.cache_max_count |
integer | 1_000_000 |
Maximum cache entry count |
storage.ram.encode |
boolean | true |
Enable message encoding |
Redis Backend
| Option | Type | Default | Description |
|---|---|---|---|
storage.redis.url |
string | "redis://127.0.0.1:6379/" |
Redis server URL |
storage.redis.prefix |
string | "message-{node}" |
Key prefix ({node} = node ID placeholder) |
Redis Cluster Backend
| Option | Type | Default | Description |
|---|---|---|---|
storage.redis-cluster.urls |
array of string | ["redis://127.0.0.1:6380/", ...] |
Redis cluster node URLs |
storage.redis-cluster.prefix |
string | "message-{node}" |
Key prefix |
Cleanup
| Option | Type | Default | Description |
|---|---|---|---|
cleanup_count |
integer | 5000 |
Expired messages cleaned per cycle |
Dependencies
rmqtt (features: plugin, msgstore), redis (optional)
License
MIT OR Apache-2.0
Dependencies
~26–46MB
~688K SLoC