Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

rask logo

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

Design Philosophy

Want to understand the “why” behind Rask’s design choices?