Skip to content

coignard/o2

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

Cloud9 Logo

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.

About

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

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages