raven-varvara

Crates.ioraven-varvara
lib.rsraven-varvara
version0.1.0
created_at2025-07-19 13:00:39.16235+00
updated_at2025-07-19 13:00:39.16235+00
descriptionVarvara Ordinator
homepage
repositoryhttps://github.com/mkeeter/raven
max_upload_size
id1760238
size321,792
Matt Keeter (mkeeter)

documentation

README

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 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-native

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

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.

Commit count: 0

cargo fmt