Hello Devs!: Juni – a Python-feel systems language that compiles to WASM for games built on a custom software called JunoEngine
URL
https://junoengine.netlify.app
The Hotpockets
I built Juni, a statically typed systems language that aims for Python-level readability with C++-ish control: no GC, explicit memory/refs, and a compiler that targets WebAssembly. Juno is the repo around it — browser IDE, Tauri desktop shell, and a small game/sim runtime.
Why
I wanted one language that could author game logic and run it in the browser without a JS/TS game-script layer as the source of truth. Juni compiles to WASM; the host is a thin JS runtime (Canvas2D, WebGPU 3D, input, audio, ECS scenes).
What’s in the box (v9.2)
Compiler in Rust (parse → check → WASM codegen), plus LSP bits
Browser IDE (Vite + Monaco) with compile/run in-tab, scene editor, tile brush, 3D Edit viewport on WebGPU
Entity scripts: .jscene handlers map to WASM exports like player_on_update
Optional on-device AI via WebLLM (off by default)
juni export-web for static game builds; desktop installers via Tauri CI
Apache-2.0 source; distributed IDE also has an EULA
Interesting bits / tradeoffs
Language surface is deliberately small — enough for frames, entities, and host calls, not a general OS language yet
Browser “LSP” is WASM hover/diagnostics, not a full language server process
3D is a slice (mesh/light/camera + world_draw3d), not a full engine competitor
Themes and a silly Cat Coffee panel exist because the IDE is also a place I actually sit in
Try it
Open the IDE, hit Run (⌘/Ctrl+Enter). There are tutorials and a platformer example in-repo.
Repo: https://github.com/AJpro774/Juno
I’d love feedback on the language surface, the WASM entity-script ABI, and whether the IDE feels usable for small 2D/3D prototypes.
Top comments (3)
python
Hello! cat emoji
☕️