Outrun Logo

Outrun

A modern programming language where everything is a protocol. Built for elegance, type safety, and synthwave aesthetics.

Key Features

Everything you need for modern programming

🎯

Everything is Protocols

All operators, control flow, and behaviour is defined through protocols. Even + calls BinaryAddition.add().

🏷️

Named Parameters Only

Crystal clear function calls with no confusion about argument order. divide(numerator: 10, denominator: 2).

🛡️

Powerful Guards

Functions with guards ensure safety at compile time. No more runtime errors from invalid inputs.

🔮

Hygienic Macros

Powerful macros using the same syntax as the language, with hygienic variable capture prevention.

🎭

No Nulls, No Exceptions

Explicit error handling with Result and Option types. Safe by design.

🏗️

Module System

Types ARE modules! File structure maps directly to module hierarchy for intuitive organization.

See It In Action

Experience the elegance of Outrun syntax

Protocol-Based Operations

// All operators are protocol implementations
protocol BinaryAddition<T> {
    def add(left: Self, right: T): Self
}

// 1 + 2 becomes BinaryAddition.add(left: 1, right: 2)
result = data
    |> validate()
    |> transform()
    |> save()

Guard System

def divide(a: Integer, b: Integer): Result<Float, Error>
when Integer.non_zero?(b) {
    Ok(Float.from_integer(a) / Float.from_integer(b))
}

def divide(a: Integer, b: Integer): Result<Float, Error>
when Integer.zero?(b) {
    Err(DivisionByZero("Cannot divide by zero"))
}

Want to Help?

Outrun is in active development and we welcome contributors! Here's where you can make an impact.

Development Status

🚀 Core Complete

  • • Language specification
  • • Parser with comprehensive testing
  • • Type checker with protocol system
  • • CLI tooling
  • • Editor support (VS Code, Zed, Helix)

🔨 Areas Needing Help

  • • Rust compiler implementation
  • • Standard library expansion
  • • Language server protocol
  • • Documentation and tutorials
  • • Package manager design

Whether you're interested in compiler development, language design, or documentation, there's a place for you!