A full-stack Rust application — no separate frontend build step, no Node.js, no npm. One binary, one command.
⬛
QR Encode (PNG & SVG)
Generate QR codes in PNG or vector SVG. Customize module size, quiet zone, foreground and background colors via CSS color strings.
🔍
QR Decode
Decode QR codes from uploaded images (PNG, JPEG, WEBP, GIF, BMP) or from base64 JSON payloads. Powered by the rxing multi-format scanner.
📦
Batch Encode
Encode up to 50 items in a single request. Download all generated QR codes individually straight from the dashboard.
🎨
Dark & Light Mode
The dashboard ships with a polished dark theme (default) and a full light mode — toggled with one click and persisted to localStorage.
⚡
Operation History
In-memory LRU cache (moka) records the last 500 encode / decode operations. Browse, preview thumbnails, and clear from the UI.
🛡️
Production Hardened
Request size limits, 30 s timeout, Gzip/Brotli compression, configurable CORS, structured JSON logging, health + readiness probes.
🐳
Docker Ready
Multi-stage Dockerfile produces a minimal Debian-slim image under 50 MB. docker-compose.yml included with resource limits and healthchecks.
🚀
GitHub Actions CI/CD
Automated lint, test, cargo-audit security scan, Docker build on every push. Release workflow cross-compiles binaries for Linux, macOS, and Windows.
⚙️
12-Factor Config
All settings via environment variables — HOST, PORT, LOG_LEVEL, JSON_LOGGING, CORS_ORIGINS, MAX_UPLOAD_BYTES, HISTORY_CAPACITY.