Safety without the pain.
Rask is a systems programming language that sits between Rust and Go:
- Rust’s safety guarantees without lifetime annotations
- Go’s simplicity without garbage collection
Status: Design phase with working interpreter (no compiler yet)
Quick Look
func search_file(path: string, pattern: string) -> () or IoError {
const file = try fs.open(path)
ensure file.close()
for line in file.lines() {
if line.contains(pattern): println(line)
}
}
No lifetime annotations. No borrow checker fights. No GC pauses.
Core Ideas
- Value semantics - Everything is a value, no hidden sharing
- Single ownership - Deterministic cleanup, no GC
- Scoped borrowing - Temporary access that can’t escape
- Handles over pointers - Validated indices for graphs and cycles
- Linear resources - Files and sockets must be explicitly consumed
- No function coloring - I/O just works, no async/await split
Get Started
- Try in Playground - Run Rask code in your browser
- Installation
- First Program
- Language Guide
- Examples
Design Philosophy
Want to understand the “why” behind Rask’s design choices?
- Design Principles
- Formal Specifications
- Blog - Development updates and design discussions