/raven

An implementation of the Uxn CPU and Varvara Ordinator

Primary LanguageRustMozilla Public License 2.0MPL-2.0

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, and mandelbrot.tal
  • The unsafe ("native") interpreter is written in aarch64 assembly (with Rust shims on either side), and runs 40-50% faster than the reference implementation

The 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-cli is a command-line application to run console-based ROMs
  • raven-gui is a full-fledged GUI, which runs both as a native application and on the web

© 2024 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.