o2-rs 0.1.1

Rust port of the ORCΛ esoteric programming language and terminal livecoding environment
Documentation

O₂

Rust port of the ORCΛ esoteric programming language and terminal livecoding environment.

CI CodeQL Documentation codecov Crates.io License: GPL-3.0-or-later Ko-fi

Demo

The original ORCΛ ecosystem has two reference implementations: a JavaScript/Electron desktop app and a C terminal livecoding environment. The JS version has a polished interface, but runs on a garbage-collected runtime that introduces timing jitter, a real problem when sending MIDI. The C version is fast and memory-efficient, but its ncurses UI is bare-bones and its clipboard support requires shelling out to xclip.

O₂ borrows the JS version's UX and builds it on the flat-buffer memory layout from Orca-C, in Rust. That means a phase-locked MIDI clock, zero heap allocations per frame, a ratatui UI with span-merging to cut terminal I/O, and native clipboard via arboard.

If you already write ORCΛ patches, O₂ runs them as-is.

Batteries included.

Install

To download the source code, build the O₂ binary, and install it in $HOME/.cargo/bin in one go run:

cargo install --locked --git https://github.com/coignard/o2

Or install via Homebrew:

brew install coignard/tap/o2

Alternatively, you can manually download the source code and build the O₂ binary with:

git clone https://github.com/coignard/o2
cd o2
cargo build --release
sudo cp target/release/o2 /usr/local/bin/

Install as library

Run the following Cargo command in your project directory:

cargo add o2-rs

Or add the following line to your Cargo.toml:

o2-rs = "0.1.1"

Extensions

O₂ extends the original ORCΛ operator set with one additional glyph.

The _ character is valid in the length port of the MIDI (:) and Mono (%) operators. It creates a note with no scheduled Note Off.

:41C._

An explicit Note Off event can be sent with:

:41C.0

Test

cargo test

Credits

O₂ is a Rust port of the ORCΛ esoteric programming language and livecoding environment, combining the best of the original JS and C implementations by Hundred Rabbits (Devine Lu Linvega & Rek Bell).

The ORCΛ language specification, operator semantics, and example patches are their work.

Relevant implementations:

Language Repository
JavaScript hundredrabbits/Orca
C hundredrabbits/Orca-c

Built with ratatui.

Sponsors

License

The O₂ source code is © 2026 René Coignard and licensed under the GNU General Public License v3.0 or later.

The examples/ directory contains patch files from the Orca-C project, © 2017 Hundredrabbits, and are distributed under the MIT License.