Source

Quetite is a small interpreted scripting language with a friendly, Ruby-like syntax, dynamic typing, and an stdlib of native helpers. It is implemented as a classic three-stage interpreter (lexer -> parser -> evaluator) in Rust.

println("Hello Quetite!")

[!WARNING]
Quetite is still a WIP (work in progress) language. Expect breaking changes!

Features

Quick Start

Prereqs: Rust toolchain installed via rustup.

Build and run a script:

cargo run path/to/script.qte

Run the example snake.qte:

cargo run examples/snake.qte

Run the interactive REPL:

cargo run

Use the help command inside the REPL to interactively explore "The Quetite Language Reference" and "API Reference" documentations. Also check out the examples folder to see other examples!

Example Rock-Paper-Scissors Game in Quetite

println("Rock Paper Scissors in Quetite!")

var moves = ["rock", "paper", "scissors"]
var beats = {
    "rock": "scissors",
    "paper": "rock",
    "scissors": "paper"
}

while true do
    print("\nMake your move: ")
    var user = read()

    if user == "q" break
    if !moves.contains(user) do
        print("Invalid move! Valid moves are: ")
        println(moves)
        continue
    end

    var computer = Rand.list(moves)

    println("\nYour move: " + user)
    println("Computer's move: " + computer)

    if beats[computer] == user println("\nComputer wins!")
    if beats[user] == computer println("\nYou win!")
    if user == computer println("\nIt's a draw!")
end

Quetite at a Glance

See "The Quetite Language Reference" for a full list and detailed explanations of Quetite's features.

Repository Layout


Tags: language   interpreter  

Last modified 15 January 2026