Skip to content

AuraCompiled. Statically typed. Familiar.

Python-inspired syntax, deterministic ownership, structured concurrency, and native executables for reliable software.

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

Why Aura

Aura brings familiar source code to a compiled, statically typed language. Its indentation-based syntax is easy to read, while compiler checks cover 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, ML infrastructure, evaluation workers, and control-plane services.

Aura is a technical preview. The language and APIs may still 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)}")

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

Built For Agents And ML Infrastructure

Serving models and running agents involves sockets, subprocesses, queues, deadlines, and retries. Aura's rules make the failure modes visible:

  • Values have owners. Bare parameters share, mut mutates, own transfers. Cleanup follows the owning scope.
  • Failure has a type. Recoverable failures return Result, Option, or an outcome enum, handled where they happen.
  • Concurrency has a scope. A TaskGroup owns its children: leaving the scope joins them, cancels stragglers, and loses nothing.
  • The standard library speaks infrastructure. Files, processes, TCP, HTTP, WebSockets, TLS, queues, retries, and supervisors follow the same ownership and failure rules as everything else.

Long-Term Direction

Aura's long-term goal is to become a general-purpose systems language capable of building every type of software. The intended scope spans applications, services, databases, language runtimes, embedded software, operating systems, and device drivers.

Aura 0.3 establishes the foundation through static typing, deterministic ownership, native compilation, structured concurrency, typed failure, packages, and integrated tooling. Later releases will extend that foundation with 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: grammar, ownership rules, execution model, APIs, diagnostics, and limits.

Aura 0.3.2 technical preview. Implementation baseline: 837eb9756ed9efdca275d960edf12317fff1aa9c.