// One installer, every platform

Download NOVA.

The compiler, runtime, standard library, and a matched clang/LLVM toolchain — all in one file, per platform. Nothing to separately install: no system LLVM, no Visual Studio Build Tools, no apt install llvm.

🚧 Pre-release — not ready for general use yet

The Windows and Linux bundles below are real — each carries its own clang/LLD, and both were verified building and running NOVA programs with the toolchain stripped off PATH entirely. They are still pre-release: extract them yourself, since the one-command installer scripts aren't wired to a live release feed yet, and macOS isn't built. Kick the tires, don't ship production work on it.

🔏 Before you download: no code signing, no official certification

These binaries are not digitally signed with a Windows Authenticode certificate or an Apple Developer ID, and they are not distributed through the Microsoft Store, the Mac App Store, or any Linux distribution's official package repository (apt/dnf/pacman). Expect Windows SmartScreen or macOS Gatekeeper to show an "unknown publisher" warning — that's normal for an independent, self-funded open-source project without a paid signing certificate, not a sign the file itself was tampered with. Verify the SHA256 checksum below before running if you want that assurance, and read install.sh/install.ps1 yourself before piping them into a shell — both are short, plain-text scripts.

NOVA is an independent project created by Mangesh Mane. It is not affiliated with, certified by, or endorsed by Microsoft, Apple, Canonical, Red Hat, the Linux Foundation, or any other OS vendor — "Windows," "macOS," and "Linux" above describe target-platform compatibility only. NOVA is licensed under the Apache License 2.0 (see LICENSE in the source repository) and provided "AS IS," WITHOUT WARRANTY OF ANY KIND, express or implied — you run these binaries entirely at your own risk. (This notice is a plain-language summary for convenience; the Apache 2.0 license text is the actual governing terms.)

2 platforms live, zero separate LLVM 3 platforms, native to each Apache 2.0 licensed
Choose your platform

Pick one, run one command.

Every installer places NOVA under a private directory (~/.nova, or the Windows equivalent) and sets things up so nova build just works — including its own bundled clang, resolved automatically. Run nova toolchain status after installing to confirm.

🐧

Linux

x86_64 · glibc
86 MBclang 22 + LLDneeds libc6-dev

NOVA, its runtime, the standard library and Forge, plus a trimmed clang 22 and LLD. Verified building a NOVA program on Ubuntu 24.04 with an entirely empty PATH — no system clang, no binutils. Unlike the Windows bundle it does not ship a libc: you need your distro's libc6-dev (or build-essential) for the glibc headers and startup objects. See below.

macOS

Apple Silicon (arm64)
Not yet available

Same story as Linux — designed and tested, not yet published. Intel (x86_64) support is planned as a later follow-up on top of that.

🪟

Windows

x86_64 · zero-dependency bundle
81 MBclang 22 + LLDmingw-w64 UCRT

The complete package: NOVA v0.1.0, its C runtime, the standard library and Forge, plus a trimmed clang 22 / LLD and a full mingw-w64 UCRT sysroot. No Visual Studio, no Windows SDK, no separate LLVM. Extract it anywhere, point NOVA_HOME at the folder, and bin\nova.exe build app.nova works.

Verifying a download

Prefer not to pipe a script straight into your shell? Once the real release pipeline is live, every direct archive link will skip the installer script entirely — download it, inspect it, extract it yourself. install.sh and install.ps1 are themselves small, plain-text scripts (tens of KB, not a compiled binary) — read before you run, same as any package manager's install script.

For the Windows bundle above, verify it against its published SHA256 before extracting, same as you should for any binary you download:

b2027ebb5a64d4f380bde475e3a0f5a96e0b5f654f9f8d3b1d8d5c7fdbd7fcb2

In PowerShell: Get-FileHash nova-0.1.0-windows-x64.zip -Algorithm SHA256

Using the Windows bundle

There is no installer step in this pre-release — the archive is the install. Extract it, tell NOVA where it lives, and build:

Expand-Archive nova-0.1.0-windows-x64.zip -DestinationPath $HOME\.nova $env:NOVA_HOME = "$HOME\.nova\nova-0.1.0" & "$env:NOVA_HOME\bin\nova.exe" toolchain status & "$env:NOVA_HOME\bin\nova.exe" build hello.nova -o hello.exe

nova toolchain status reports which clang it resolved — it should name the one inside NOVA_HOME\toolchains\clang, not anything on your PATH. To make NOVA_HOME stick across sessions, set it once with setx NOVA_HOME "$HOME\.nova\nova-0.1.0" and add %NOVA_HOME%\bin to your PATH.

Using the Linux bundle

tar -xJf nova-0.1.0-linux-x64.tar.xz -C ~/.nova export NOVA_HOME=$HOME/.nova/nova-0.1.0 $NOVA_HOME/bin/nova toolchain status $NOVA_HOME/bin/nova build hello.nova -o hello

(mkdir -p ~/.nova first. Add the export to your shell profile to make it stick.)

What Linux still needs from your system — and why

The Windows bundle is genuinely self-contained because llvm-mingw ships a complete mingw-w64 sysroot. The official LLVM Linux build does not ship a libc, so the Linux bundle relies on yours:

  • Required: glibc development files — the headers (stdio.h resolves from /usr/include) and the startup objects (Scrt1.o, crti.o from /lib/x86_64-linux-gnu). Install with apt install libc6-dev or dnf install glibc-devel.
  • Required: libstdc++6 and zlib1g — the bundled clang binary itself links against them. Present by default on essentially every desktop distro.
  • NOT required: clang, LLVM, or binutils. The bundle ships its own clang and LLD, and a clang.cfg that points the driver at the bundled ld.lld instead of /usr/bin/ld.

Programs you build link only against libc and libm, so the executables themselves run on any glibc system — verified with ldd.

Not sure which one

Building the compiler itself?

These installers are for using NOVA. If you're contributing to the compiler itself, see building from source in the docs — that path still needs a system clang, since it's what bootstraps the compiler from source before the bundled-toolchain resolution exists to use.