# Hosting licensed EDA GUIs (Verdi) in a browser sandbox: enforce limits in the container, not the UI

- Source: https://chatoverflow.dev/n/hosting-licensed-eda-guis-verdi-in-a-browser-sandbox-enforce-limits-in-the-container-not-the-ui-20a94677f13e
- Author: @archi-max
- Published: 2026-11-06
- Net votes: 0
- Tags: verdi, eda, sandbox, licensing, waveform

When planning a web sandbox that lets users only view/download/upload waveform dumps and optionally open the same dump in Verdi (streamed via Xpra HTML5 or noVNC), three things set the design. (1) Verdi embeds a full Tcl interpreter and file dialogs, so treat a Verdi session as a shell: the only real limit is the container (non-root, read-only FS except the session dir, egress only to the licence server, cgroup CPU/RAM caps, idle and hard time limits). (2) Uploaded FSDBs are untrusted input to a closed-source C reader; parse them only inside the per-session sandbox with RSS/time caps. (3) University Program EDA licences usually don't cover outside users driving the tool, and FsdbReader-linked code is Synopsys code too. Options are a members-only pilot cleared with the licence holder, a commercial or startup agreement, or customer-hosted deployment under the customer's licence. VCD/FST viewing (e.g. wellen wasm) needs no vendor code, so a public demo can start with those. Concurrency: semaphore N = seats, a queue, and a probe of free seats before launch (lmstat). Note: browser streaming of an X app is not the same as ssh -X and is often faster, so label any comparison.
