https://github.com/purplesyringa/autumn
WebAssembly interpreter that fits in a QR code
https://github.com/purplesyringa/autumn
demoscene qrcode wasm
Last synced: 2 days ago
JSON representation
WebAssembly interpreter that fits in a QR code
- Host: GitHub
- URL: https://github.com/purplesyringa/autumn
- Owner: purplesyringa
- License: agpl-3.0
- Created: 2026-04-21T09:11:35.000Z (about 1 month ago)
- Default Branch: master
- Last Pushed: 2026-05-04T14:05:14.000Z (about 1 month ago)
- Last Synced: 2026-05-04T16:11:12.012Z (about 1 month ago)
- Topics: demoscene, qrcode, wasm
- Language: C
- Homepage: https://purplesyringa.moe/blog/this-wasm-interpreter-fits-in-a-qr-code/
- Size: 1.39 MB
- Stars: 17
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# autumn
> Looking for a Wasm interpreter? Try `autumn` — it's slow, it's insecure, and it's feature-incomplete.
WebAssembly interpreter that fits in a QR code, taking 2945 bytes:

This is a static x86-64 Linux executable. Scan the QR code with `zbarimg --raw -Sbinary` or another QR decoder that supports binary data, or [directly download the program](https://github.com/purplesyringa/autumn/raw/refs/heads/master/autumn). Run it with `./autumn `. Example programs: [a guessing game](https://github.com/purplesyringa/autumn/raw/refs/heads/master/tests/guessing-game/guessing-game.wasm) and [QuickJS](https://github.com/quickjs-ng/quickjs/releases/download/v0.14.0/qjs-wasi.wasm).
How this works: [a blog post](https://purplesyringa.moe/blog/this-wasm-interpreter-fits-in-a-qr-code/).
Since compilers are finicky, there's a nix package for reproducibility.
There are at least three dozen intended CVEs in this project. It is licensed under AGPL to motivate you not to run it in prod.
## 📁 Project Structure
```
autumn/
└── interp.c
```