Install Wave

Install Wave on Linux, macOS, or Windows and run your first program.

Wave Foundation

Installation policy

The installers use the Wave release pinned by this platform. Drafts and Nightly are excluded. Use manual installation below for other releases. If the pinned release has no package for your platform, installation stops without selecting another version.

Operating system Architectures
Linux amd64, arm64, riscv64, loong64
macOS amd64, arm64
Windows amd64, arm64
FreeBSD amd64

Linux, macOS and FreeBSD

Requires Bash, curl, jq, tar and a SHA-256 tool. Install bash, curl and jq first on FreeBSD. Linux requires compatible glibc and system libraries; macOS requires Apple Command Line Tools; FreeBSD requires a compatible base system.

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

Windows

Run in PowerShell. The installer detects Windows amd64 or arm64 and selects the MSVC package. The Visual C++ runtime, Windows SDK and MSVC/UCRT libraries are required. A Visual Studio developer shell can provide the environment needed for the compilation check.

irm https://wave-lang.dev/install.ps1 -OutFile install.ps1
powershell -ExecutionPolicy Bypass -File .\install.ps1

Installation options

By default, install Wave and the latest Vex when a package exists for your platform. If Vex has no package, install Wave only and report that choice. Vex download or verification failures are errors and are never silently skipped.

Bash option PowerShell option
Require Vex --with-vex -WithVex
Install Wave only --without-vex -WithoutVex
Do not modify PATH --no-modify-path -NoModifyPath

Run the same command to update. Keep the previous installation until the new compiler and bundled std pass execution checks; restore it on failure. Default locations are ~/.wave/bin on Unix and %LOCALAPPDATA%\Wave\bin on Windows. Set WAVE_INSTALL_DIR to choose a dedicated installation directory. Open a new terminal after automatic PATH setup.

Manually install older versions and Nightly

Download the .tar.gz or .zip for the required version, OS and architecture from GitHub Releases. Extract it while keeping the relative paths of wavec, std, llvm and all other bundled files. Add the directory containing wavec to PATH. Follow the notes for older releases whose layout or prerequisites differ. Installer options --version, --vex-version, -Version and -VexVersion are not supported.

First run

The installer compiles and runs a small program using the bundled std. There is no need to download a separate latest std. Run the example below after installation. If Vex was installed, you can also check it with vex --version.

wavec --version

Create a plain-text file named main.wave in a directory of your choice and save the complete program below. Make sure the filename is not main.wave.txt.

import("std::string::len")::{
    len
};

fun main() {
    println("Wave: {} bytes", len("Wave"));
}

Open a terminal in the directory containing main.wave (or use cd to navigate there), then run:

wavec run main.wave

Expected output:

Wave: 4 bytes