
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!