qemu browser labs
qemu via wasm for browser-based networking labs
components
- client xterm.js
terminal emulator for browser
xterm.js v5 - service qemu wasm
full system emulator compiled to webassembly
qemu 8.xemscripten - service block manager
manages lazy-loaded 64kb disk blocks with lru caching
javascriptindexeddb - cache indexeddb
browser-side block cache surviving page refresh
indexeddb - service service worker
intercepts http requests from guest vm
service workerc2w-net-proxy - service api worker
entry point for all api requests, handles auth
cloudflare workers - service session do
stateful session with sqlite storage and websocket
durable objectshibernation api - service rate limit do
distributed rate limiting across edge locations
durable objects - database r2
object storage for blocks, overlays, and checkpoints
cloudflare r2 - cache kv
read-heavy cache for manifests and hot blocks
cloudflare kv - database d1
session metadata and checkpoint pointers
cloudflare d1sqlite - queue telemetry queue
async telemetry events for block access patterns
cloudflare queues - queue gc queue
triggers cleanup of stale sessions and overlays
cloudflare queues - queue build queue
triggers lab build workflow on dockerfile upload
cloudflare queues - external analytics engine
stores block telemetry for hot bundle optimization
analytics engine - service build workflow
durable, resumable lab build pipeline
cloudflare workflows - external r2 event
r2 bucket event notification on upload
r2 event notifications