Zornux docs
Get started Spec

Introduction

Getting Started

Zornux turns programming into something you can read aloud. This page gives you the whole mental model in a few minutes.

What is Zornux?

Zornux is a high-level programming language whose goal is to radically reduce the learning curve of software development. You express logic in human-readable, intent-driven English — while the language stays strict, deterministic, and suitable for professional applications.

It rests on three principles:

  • Zero punctuation overhead — no semicolons, no structural colons, no required grouping brackets in ordinary logic.
  • Flexible structural bounds — every block closes with the word end, never with significant whitespace.
  • Intent-aware diagnostics — the toolchain explains errors in plain language and proposes a fix.

Install it

Zornux ships as a single self-contained zornux binary — there is no runtime to install alongside it.

bash
# macOS / Linux — Homebrew
brew install zornux/zornux/zornux

# Windows — Scoop
scoop bucket add zornux https://github.com/zornux/scoop-zornux
scoop install zornux

Or download a binary for your platform — Windows, Linux, or macOS, on x64 or arm64 — from the latest release, unpack it, and put zornux on your PATH.

bash
tar -xzf zornux-1.8.0-linux-x64.tar.gz
./zornux --version        # zornux 1.8.0
Nothing to install yet?

Try the language in the browser playground at play.zornux.com — the same toolchain, compiled to WebAssembly, with nothing to download.

Hello, world

The smallest Zornux program is exactly what you'd guess:

zornux
show "Hello World!"

Put that in hello.zx and run it. There is no build step and no project scaffolding to create first:

bash
zornux run hello.zx       # Hello World!
zornux check hello.zx     # validate without running it
zornux repl               # or try things interactively

When a program grows past one file, zornux init scaffolds a project — see Modules and the CLI reference for the rest of the toolchain.

The one rule to remember

You declare values with create. You can bind a value with the word as or with = — they mean the same thing, so pick whichever reads better:

zornux
create name as "Alice"     # reads like a sentence
create age = 16            # or use '=' if you prefer

age = age + 1              # reassign an existing value with '='
Names, not symbols

Comparisons are words too: is, is not, is less than, is greater than or equal to. You almost never need to reach for a symbol.

A complete little program

zornux
create scores as [8, 5, 10, 3]
create total = 0

for each score in scores
    total = total + score
end

if total is greater than 20
    show "High total: " + total
else
    show "Total: " + total
end

How these docs are organized

SectionWhat you'll find
Language TourVariables, types, operators, conditionals, loops, and functions.
Standard LibraryBuilt-in functions: text, lists, math, dates, files, and JSON.
ClassesZornux's take on objects: classes, items, and inheritance.
ModulesMulti-file projects: modules, imports, and visibility.
ControllersHTTP route groups with controller and web blocks, and service for business logic.
Building APIsComplete walkthrough: CRUD, validation, databases, and testing.
SecurityDeclarative authorization and untrusted-input isolation.
Mobile DevelopmentBuild native Android apps — screens, layouts, widgets, state, and navigation.
Android UI PatternsTheming, custom widgets, forms, dark mode, and accessibility.
TestingNative test / expect tests and zornux test.
Command LineThe zornux tool: run, build, serve, format, and the REPL.
Doc GeneratorGenerate Markdown or HTML API docs with zornux doc.
DebuggerBreakpoints, stepping, and inspection with zornux debug / dap.
SpecificationThe formal grammar, type system, and design rationale.
KeywordsEvery reserved word, at a glance.
DiagnosticsHow Zornux reports — and explains — errors.
New to Zornux?

Start with the language tour for a guided walk through the syntax, then explore any topic from the sidebar.