woua

A Lisp-syntax language that compiles to WebAssembly

(include io)

(defn main ()
  (printf "Woua!\n"))
Woua — the woua mascot

Woua — woof in French

Lisp syntax

Write programs in a clean, parenthesised syntax. Define functions, macros, and types with consistent, composable forms.

Compiles to WebAssembly

Every woua program compiles directly to a .wat text module, then to a binary .wasm file runnable with any WASI-compatible runtime.

Powerful macros

Variadic compile-time macros with macro-if, macro-seq, and string intrinsics. printf is implemented entirely as a woua macro.

Zero runtime

No garbage collector, no hidden allocations beyond what your code requests. A minimal bump allocator is generated automatically.

Transparent output

woua compiles to human-readable .wat first, then to binary. Inspect the generated WebAssembly text at any time — no black-box codegen.

Dead code elimination

The compiler traces the call graph from main and only emits reachable functions. Unused library code is silently dropped — lean binaries with no extra tooling required.