v1.1.0 — Gzip canvas compression + throttled sends
All checks were successful
CI / ci (push) Successful in 6m29s

- Canvas snapshots gzip-compressed before sending: 1MB raw -> ~1-5KB
  for a mostly-white canvas, ~100-500KB for a busy one
- Semaphore throttles concurrent canvas sends (default 20) to prevent
  memory spikes during connection bursts
- Frontend decompresses gzip via browser DecompressionStream API
- New config: MAX_CONCURRENT_CANVAS_SENDS (default 20)
- Added flate2 dependency for gzip encoding
This commit is contained in:
2026-08-18 02:28:47 +02:00
parent 31f0fce7a9
commit 3fbae1bd95
9 changed files with 113 additions and 20 deletions

View File

@@ -24,7 +24,7 @@ default-members = [
resolver = "2"
[workspace.package]
version = "1.0.0"
version = "1.1.0"
edition = "2024"
[workspace.dependencies]
@@ -37,6 +37,7 @@ config-env = { path = "crates/adapters/config-env" }
http-axum = { path = "crates/adapters/http-axum" }
socketio = { path = "crates/adapters/socketio" }
websocket = { path = "crates/adapters/websocket" }
flate2 = "1"
futures = "0.3"
axum = "0.8.9"