Axe

A modern systems programming language focused on explicit allocations, effortless concurrency, and memory safety

Why Axe?

Explicit by Design

Every allocation, mutation, and side effect is visible in code. No hidden costs. Write code that does exactly what it says.

Built for Concurrency

Parallel constructs are first-class citizens. Write concurrent code that's both safe and performant with intuitive parallel for loops and clear semantics.

Memory Safe

Strong type system and compile-time checks help prevent common memory errors. Get the performance of systems programming without the crashes.

Cross-Platform

Write platform-specific code elegantly with built-in platform blocks.

Zero-Cost Abstractions

High-level features compile down to efficient machine code. No runtime overhead or garbage collection pauses.

Testing Built-In

Write tests directly alongside code with integrated test blocks. Keeps code reliable from day one.

Readable Syntax

Axe's syntax is designed to be clear and expressive. Explicit mutability markers, straightforward control flow, and powerful platform-specific code blocks make intentions completely clear.

Arena-Based Memory Management

use std.arena;
use std.io;

model Node {
    value: i32;
    next: ref Node;
}

/// Allocate a new Node from the arena
def new_node(arena: ref Arena, value: i32): ref Node {
    mut n: ref Node = Arena.alloc(arena, sizeof(Node));
    n.value = value;
    n.next = nil;
    return n;
}

/// Push a new value to the front of the list
def list_push_front(head: ref Node, arena: ref Arena, value: i32): ref Node {
    mut new_head = new_node(arena, value);
    new_head.next = head;
    return new_head;
}

Cross-Platform Support

Write once, deploy anywhere. Axe's platform blocks allow for targeting multiple operating systems while maintaining clean, readable code.

๐ŸชŸ

Windows

๐Ÿง

Linux

๐ŸŽ

macOS