Skip to content

AuraCompiled. Statically typed. Familiar.

Python-inspired syntax with deterministic ownership, structured concurrency, and native executables.

Install Auracurl -fsSL https://johnolafenwa.github.io/Aura/install.sh | sh
Aura language mark

Why Aura ​

Aura is a compiled, statically typed language with familiar, indentation-based syntax. The compiler checks types, ownership, mutation, exhaustive matching, failure handling, and task boundaries. Programs build as native executables with deterministic cleanup and no garbage collector.

The current preview is designed for reliable applications, agent runtimes, machine learning (ML) infrastructure, evaluation workers, and control-plane services.

Aura is a technical preview. The language and its APIs may change before a stable release.

At A Glance ​

PythonRustAura
SyntaxIndentation-based and conciseExplicit and low-levelPython-inspired and indentation-based
TypesDynamic, with optional hintsStaticStatic, with inference
ExecutionInterpreter and virtual machineNative executablesNative executables
MemoryReference counting and garbage collectionOwnershipOwnership, no garbage collector
FailureExceptionsResult, Option, panicsTyped Result, Option, outcome enums
ConcurrencyThreads and async functionsThreads and async ecosystemStructured task groups across multiple cores
Current focusGeneral-purpose applications and scriptingSystems and application softwareReliable applications, agents, and ML infrastructure

A First Program ​

Aura
def scale(values: mut list[int64], factor: int64):
    for value in mut values:
        value *= factor

def total(values: list[int64]) -> int64:
    mut sum = 0
    for value in values:
        sum += value
    return sum

mut scores = [10, 20, 30]
scale(scores, 3)

print(f"scores: {scores}")
print(f"total: {total(scores)}")

Each signature says what the function does to its arguments. scale asks for mut access and changes the list in place. total only reads it. The compiler enforces both contracts, and every operation is statically checked.

Built For Agents And ML Infrastructure ​

Serving models and running agents means working with sockets, subprocesses, queues, deadlines, and retries. Aura's rules make the ways these can fail visible in the code:

  • Values have owners. A bare parameter shares, mut mutates, and own transfers. Cleanup follows the owning scope.
  • Failure has a type. Recoverable failures return Result, Option, or an outcome enum, and the code handles them where they happen.
  • Concurrency has a scope. A TaskGroup owns its child tasks. Leaving the scope joins them, cancels stragglers, and loses nothing.
  • The standard library covers infrastructure. Files, processes, TCP, HTTP, WebSockets, TLS, queues, retries, and supervisors follow the same ownership and failure rules as the rest of the language.

Long-Term Direction ​

Aura aims to become a general-purpose systems language that can build every type of software. The intended scope spans applications, services, databases, language runtimes, embedded software, operating systems, and device drivers.

Aura 0.6 lays the foundation: static typing, deterministic ownership, native compilation, structured concurrency, typed failure, packages, and integrated tooling. Later releases will add freestanding compilation, low-level memory access, hardware interfaces, portable layout controls, cross-compilation, and specialized runtime profiles.

AI agent entry point

Teach an agent Aura in one URL.

Aura publishes machine-readable documentation generated from the maintained Manual, Learn track, tutorials, installation guides, and project overview.

Agent instruction

Read https://johnolafenwa.github.io/Aura/llms.txt first. Use https://johnolafenwa.github.io/Aura/llms-full.txt when you need complete language and tooling context. Treat the linked Manual as normative.

Start Building ​

Install Aura, then run a file or build a native executable:

bash
aura run program.au
aura build -o ./program program.au

Learn Aura starts with runnable scripts and works up to tasks, typed failures, and I/O. The Manual is the normative reference. It covers the grammar, ownership rules, execution model, APIs, diagnostics, and limits.

Aura 0.6.0 technical preview. Implementation baseline: 4d7e076de9ff6e2e056cdec10881d4bf421358de.