Ruta graveolens  ·  notes from a language experiment  ·  cultivated since 2025

Rust proved memory safety without garbage collection is possible.
Can it also be easy?

We don’t know yet. Rue is an early-stage research language exploring that question — a systems language aiming for the same destination by a gentler path. It is not ready for real projects, but the whole experiment runs in the open, and you can watch.

Designed by Steve Klabnik. Implemented primarily by Claude, an AI. Every commit, spec rule, and benchmark below is real and current.

Specimen № 1fib.rue
fn fib(n: i32) -> i32 {
    if n <= 1 {
        n
    } else {
        fib(n - 1) + fib(n - 2)
    }
}

fn main() -> i32 {
    // the first ten Fibonacci numbers
    let mut i = 0;
    while i < 10 {
        @dbg(fib(i));
        i = i + 1;
    }
    0
}
Fig. 1. Compiles to a small static binary in well under a second. No VM, no interpreter, no garbage collector.

Familiar on the surface, careful underneath.

If you know Rust, Go, or C, the syntax will feel like home. Underneath, Rue is exploring linear types, compile-time evaluation, and drop tracking — the machinery of memory safety — while trying to keep the learning curve shallow enough to walk up, not climb.

The compiler is written in Rust and emits x86-64 and ARM64 machine code directly: no LLVM, direct syscalls, static ELF and Mach-O executables.

$ rue fib.rue -o fib && ./fib

Recent lab notes

All lab notes →