Skip to main content

Systems programming language

Wave

Native systems programming with explicit behavior, standard-library driven capability, and compiler internals that stay inspectable.

Quick start

Install, run, inspect.

The website now reflects the compiler repository directly: a small toolchain, explicit CLI commands, and debugging flags for compiler development.

Install

Get the latest compiler release on supported Unix-like systems.

curl -fsSL https://wave-lang.dev/install.sh | bash -s -- latest
Run

Compile and execute a Wave source file from the CLI.

wavec run examples/hello.wave
Build

Emit a native binary when you are ready to ship or inspect output.

wavec build app.wave -o app
Debug

Inspect compiler stages while working on language behavior.

wavec build app.wave --debug-wave=tokens,ast,ir

Language surface

Small syntax, visible systems intent.

examples/hello.wave
fun main() {
    println("Hello World");
}

Project philosophy

The compiler does less hidden work.

No builtin functions

The compiler stays small and explicit; higher-level functionality belongs in libraries.

No implicit runtime

Wave favors visible behavior and predictable native output over hidden language machinery.

Compiler-first architecture

Token, AST, IR, machine-code, and hex debugging modes keep internals inspectable.

Target policy

Platform support is tiered on purpose.

Wave sets expectations for standard library coverage, CI, and release stability by target family.

Tier 1Primary

Linux, Darwin, WaveOS

Full standard library support, required CI coverage, and release-blocking status.
Tier 2Secondary

FreeBSD, Redox, Fuchsia

Maintained build support with partial standard library coverage.
Tier 3Experimental

OpenBSD

Compiler build and compile path prioritized while platform coverage grows.
Tier 4Unofficial

Windows

Community-maintained status without official standard library target guarantees.

Contributing

Built in public with signed-off changes.

Wave accepts GitHub pull requests and email patches. Contributions are expected to be focused, signed off, and verified against the compiler toolchain.

git checkout -b fix/parser-bug
git commit -s -m "Fix parser behavior"
git format-patch -1
git send-email --to wave-patches@lunastev.org *.patch