Skip to main content

Official home of the Wave programming language

One language for systems, tooling, and the stack around it.

Wave is building a unified language ecosystem around explicit behavior, native output, inspectable compiler stages, and a standard library that scales from CLI tools to low-level systems work.

Philosophy
Explicit behavior over hidden magic
Focus
Compiler, std, package tooling, data format
Status
Active design and compiler work
$ curl -fsSL https://wave-lang.dev/install.sh | bash -s -- latest
$ wavec run hello.wave
Hello, Wave

$ wavec build kernel.wave --debug-wave=tokens,ast,ir
[tokens] ok
[ast] ok
[ir] ok
[codegen] native binary ready

Installation

Install fast, then move directly into code.

The official site should answer the first practical question immediately: how to get Wave, how to run it, and how to inspect what the compiler is doing.

Install

Install the latest published compiler quickly 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 command line.

wavec run examples/hello.wave
Inspect

Inspect compiler stages while developing the language or debugging behavior.

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

Example

Show the language, not a generic landing page.

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

Philosophy

The project philosophy belongs on the front page.

One language, many domains

Wave aims to cover systems work, tooling, networking, hardware-facing code, and more without forcing the project into unrelated languages.

Compiler behavior should stay visible

Inspection modes for tokens, AST, IR, machine code, and output keep the language honest about what it does.

Libraries carry capability

The language keeps core behavior explicit while the ecosystem grows capability through std, Vex, Whale, and WSON.

Roadmap and releases

Keep progress, release notes, and roadmap in one visible place.

The home page should not bury project status. It should point directly to what Wave is building next and what users can install today.

Roadmap

Follow the staged path from pre-beta through release candidate in the project roadmap.

Published releases

Release notes live on GitHub so the official site can point clearly to what has shipped.

Install targets

The install script supports the latest channel and explicit version pinning for reproducible setups.

Translation

Help make Wave readable in more languages.

Wave already has multi-language structure in the site. Crowdin should be part of the official front door so contributors can help keep the website and docs current across languages.

Translate on Crowdin

Join translation work for the website and documentation, improve outdated pages, and help the language project feel native to more communities.