Raven is an independent re-implementation of the Uxn CPU and Varvara Ordinator.
For details, see the project writeup.
The raven-uxn crate includes two implementations of the Uxn CPU:
- The safe interpreter is a
#[no_std]crate written in 100% safe Rust, with a single dependency (zerocopy). It is 10-20% faster than the reference implementation for CPU-heavy workloads (e.g.fib.tal, andmandelbrot.tal - The unsafe ("native") interpreter is written in
aarch64assembly (with Rust shims on either side), and runs 40-50% faster than the reference implementation
The native interpreter can be checked against the safe interpreter with fuzz testing:
cargo install cargo-fuzz # this only needs to be run once
cargo +nightly fuzz run --release fuzz-nativeThe Varvara implementation (raven-varvara) includes all peripherals, and has
been tested on many of the
flagship applications
(Left, Orca, Noodle, Potato).
The repository includes two applications built on these libraries:
raven-cliis a command-line application to run console-based ROMsraven-guiis a full-fledged GUI, which runs both as a native application and on the web
The web demo is built with truck, e.g.
cargo install --locked trunk # this only needs to be run once
cd raven-gui
trunk build --release --public-url=/projects/raven/demo/ # edit this path© 2024-2025 Matthew Keeter
Released under the Mozilla Public License 2.0
The repository includes ROMs compiled from the uxnemu reference
implementation, which are © Devine Lu Linvega and released under the MIT
license; see the roms/ subfolder for details.