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,6 +24,7 @@ pub struct ServerConfig {
pub address: String,
pub port: u16,
pub enable_cors: bool,
pub max_concurrent_canvas_sends: usize,
}
#[derive(Debug, Clone)]