Now in active development

Systems programming, reimagined

Mana combines the performance of C++ with modern ergonomics. Zero-cost abstractions, no garbage collector, and explicit control flow—designed for game engines and real-time systems.

// Define a generic Result type
enum Result<T, E> {
    Ok(T),
    Err(E),
}

fn divide(a: f64, b: f64) -> Result<f64, string> {
    if b == 0.0 {
        return err("division by zero")
    }
    return ok(a / b)
}

fn main() -> int {
    match divide(10.0, 3.0) {
        Ok(result) => println(f"Result: {result}"),
        Err(e) => println(f"Error: {e}"),
    }
    return 0
}

Why choose Mana?

Built from the ground up for systems programming with modern developer experience.

Zero-Cost Abstractions

High-level constructs compile down to optimal machine code. No hidden allocations, no runtime overhead.

Memory Safety

Compile-time ownership tracking prevents data races and memory leaks without garbage collection.

Explicit Control Flow

No hidden exceptions or implicit conversions. You always know exactly what your code does.

Modern Syntax

Clean, readable code with type inference, pattern matching, and expressive generics.

C++ Interop

Compiles to clean C++17. Easy integration with existing codebases and libraries.

Built-in Graphics

First-class OpenGL support for game development and graphics applications.

Get started in minutes

From zero to running code in three simple steps.

1

Install Mana

curl -sSf https://www.mana-lang.org/install.sh | sh
2

Create your first program

echo 'fn main() -> int { println("Hello!") return 0 }' > hello.mana
3

Compile and run

mana hello.mana -o hello.cpp && g++ -std=c++17 hello.cpp -o hello && ./hello
Mana Logo

The Mana Philosophy

"A spellbook written by compiler engineers. We believe systems programming should be powerful without being painful. Every feature in Mana is designed to give you control while keeping your code clear and maintainable."