Juoni is an interpreter for a Scheme/LISP-like language written in Rust. It was originally conceived as an assignment for a compiler course, but turned out so nicely that I decided to publish it on my homepage as a project in its own right.

It uses for lexing and parsing, and Clap for parameter processing


Principal features include following

You may be interested in viewing the language specification, which details the characteristics of the language in detail

Live terminal

The terminal below interacts with a WebAssembly adaptation of Juoni. It supports essentially everything that the native Rust version does, with some relatively minor limitations (#readln uses prompts) and exceptions (scope identifiers are constant, as RNG is not properly supported).

The WASM code is dynamically downloaded; if the terminal is empty, wait a few moments.


Visit the GitLab repository for the current version