~/projects/nexium

nexium

★ 2

A programming language of my own — compiles to native code through C, with automatic reference counting (no tracing GC) and a machine-checked effect system that says what a function is allowed to do. Self-hosting compiler.

Nexium + C

## What it is

nexium is a programming language of my own. It compiles to native code through C, uses automatic reference counting instead of a tracing garbage collector, and carries a machine-checked effect system that says whether a function allocates, blocks, or can panic. One source tree can be shipped as a C library, a Python wheel, a Rust crate, or a command-line tool.

## Why build a language

The pitch I kept wanting was "complete enough to build everything in, but also the best thing to reach for when you only need one piece of something else." Most languages make you pick: a big runtime that's great alone and painful to embed, or a low-level language that embeds well but fights you everywhere else. Nexium is an attempt to get both — native performance, no heavyweight runtime, and a compiler that hands you whatever artifact the host project actually consumes.

## How it works

## A taste

A single .nx file, exported to C and Python at once:

fn checksum(data: []u8) -> u32 export(c) { ... }
artifact cabi   { name = "hasher" }
artifact python { name = "hasher" }

Then nx ship hasher.nx produces the .dll, .lib, .h, and a .whl you can import straight into Python. The full language reference and roadmap live in the repo.

← back to all projects