baggins800/reverb-rs
Rust implementation of the Laravel Reverb WebSocket server: a fast, low-memory drop-in alternative for real-time broadcasting. Speaks the Reverb protocol, so existing Laravel Echo clients and broadcasting configuration keep working unchanged.
reverb-rs is a Rust reimplementation of Laravel Reverb's WebSocket server, shipped as a ~10 MB statically linked distroless image running as nonroot. This makes the "run our own WebSocket tier instead of paying Pusher/Ably" decision materially cheaper and simpler to operate — smaller nodes, faster cold starts, fewer CVEs to patch in the base image.php artisan reverb-rs:binary command downloads a binary at deploy time, while the container path delivers the same artifact via a pinned image tag. This directly informs an architecture decision: container image with a digest pin for production, the artisan downloader only for local/dev and single-host setups.Consider it when:
amd64/arm64) support are explicit operational requirements — e.g. ARM-based cheap compute or edge deployments.Look elsewhere when:
reverb-rs:binary in locked-down CI; the container path mitigates this).Due diligence required: single-maintainer namespace (baggins800), pre-1.0 version, and an unexplained jump — the composer package appears new in v0.1.1 while v0.1.0 predates it, so treat the packaging as brand new even if the binary is not. Confirm the Pusher protocol handshake version, message size limits, and reconnect/backoff behaviour under load before committing.
To executives: There's a small, early-stage open-source server that speaks Laravel's real-time WebSocket protocol but runs as a 10 MB hardened container instead of a full PHP process. It could cut the cost and operational overhead of our real-time tier meaningfully, but it's a v0.1 community project with one maintainer and no support contract. Recommendation: a short, time-boxed spike to validate compatibility and load behaviour, with a hosted provider as the fallback if it doesn't hold up. No production commitment requested yet.
To engineering: composer require baggins800/reverb-rs, then reverb-rs:binary to fetch the binary and reverb-rs:start to run it; alternatively pull ghcr.io/baggins800/reverb-rs:v0.1.1 (multi-arch, distroless, nonroot). Ask: does it match the Pusher protocol version our Echo client uses, and does it cover the channels, presence semantics, and scaling behaviour we actually need? Flag: runtime binary download in the artisan path is an egress/supply-chain consideration — pin the image by digest in production. Version is pre-1.0; assume breaking changes.
How can I help you explore Laravel packages today?