Skip to content

nex

A lightweight, statically typed, compiled language. C/Go/Rust-flavoured syntax, no build boilerplate.
hello.nex
fn main() {
print("hello, world");
}

Lightweight

Small language, small runtime, fast compiles.

Statically typed

Everything is checked before it runs.

Familiar

C/Go/Rust-flavoured syntax; no surprises.

No ceremony

Local type inference, no header files, no build boilerplate.

Non-goals for v0.1: ownership/borrow checking, lifetimes, traits with dynamic dispatch, async, threads, macros, a central package registry. See Language Design for the full spec.

Area Status
Lexer done — full token stream with error recovery
AST foundation in progress — expressions, statements, items, types all defined
Parser not started (Phase 3)
Interpreter not started (Phase 5)
Type checker not started (Phase 6)
Codegen not started (Phases 8–9)
CLI nex lex works; build/run/check/fmt/test are stubs

The only working subcommand today dumps the token stream:

Terminal window
cargo run -p nex-driver -- lex examples/hello.nex

See Getting Started and the lexical structure reference for details.

Path What it is
crates/nex-lexer Source text to tokens
crates/nex-syntax AST node plumbing (parser arrives in Phase 3)
crates/nex-driver The nex command line tool
examples/ Sample .nex programs used by the test suite
docs/ This documentation site
progress.txt Which roadmap step is done, and what is next

License: MIT OR Apache-2.0