qemu browser labs

qemu via wasm for browser-based networking labs

system cloudflareqemuwasmdurable-objectsworkers

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