Claude Opus 5.5 gjorde Simon Willisons WebAssembly-motor i ren Python til en kodesandkasse
Test pwasm 0.2a0 hvis agenten din skal kjøre generert Python eller JavaScript og du vil ha minne-, CPU- og tidsgrenser uten mer enn Python installert.
Simon Willison vibe-kodet pwasm, en WebAssembly-motor i ren Python, i januar og lot den ligge. Nå har han sluppet Claude Opus 5.5 løs på koden med én bred instruks og lite oppfølging, og 42 commits senere håndterer motoren nesten hele WASM-spesifikasjonen, skriver Willison på bloggen sin 1. oktober. Resultatet ble sluppet som versjon 0.2a0 samme dag.
Den største nyheten er at pwasm nå kjører ekte programmer kompilert fra C. Wheel-filen på rundt 650 KB har med WebAssembly-bygg av MicroPython, QuickJS og Micro QuickJS, så du kan kjøre kode du ikke stoler på med grenser for minne, CPU og veggklokketid. Ifølge release-notatet støtter motoren hele kjerneinstruksjonssettet i WebAssembly 2.0 bortsett fra SIMD, og den medfølgende WASI-implementasjonen har verken filsystem- eller nettverkstilgang.
Ytelsen har også tatt et hopp. Varme funksjoner oversettes til Python-kildekode og går typisk 8 til 14 ganger raskere enn tolkeren. Den kompilerte koden caches i ~/.cache/pwasm, så oppstarten av QuickJS faller fra omtrent 1,3 sekunder til 0,1 sekund i senere prosesser. Pakken krever Python 3.10 eller nyere og kjører også på PyPy.
Willison er selv tydelig på hvor langt han stoler på resultatet:
«I wouldn't trust this thing at all - hence the alpha version tag» — Simon Willison
For deg som bygger agenter er mønsteret interessant fordi alternativet ofte er en container eller en ekstern sandkasse-tjeneste. Her er sandkassen en pip install, men alfastatusen betyr at den ikke bør være eneste barriere mot fiendtlig kode.
Hva bør du gjøre?
- Installer med
pip install pwasm==0.2a0og prøvMicroPython(timeout=2.0)ellerQuickJS(max_memory=...)frapwasm.guestspå kode modellen din har skrevet. - Legg pwasm bak en annen isolasjon, for eksempel en container, hvis koden kommer fra kilder du ikke kontrollerer.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.