Juni: Python and C++ United in JunoEngine WebApp

작성자

카테고리:

← 피드로
DEV Community · JunoEngine Devs · 2026-07-18 개발(SW)

JunoEngine Devs

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 or https://juno.pythonianviper.workers.dev/

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.

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다