| Crates.io | raven-uxn |
| lib.rs | raven-uxn |
| version | 0.1.0 |
| created_at | 2025-07-19 13:00:18.562263+00 |
| updated_at | 2025-07-19 13:00:18.562263+00 |
| description | Uxn CPU interpreter |
| homepage | |
| repository | https://github.com/mkeeter/raven |
| max_upload_size | |
| id | 1760237 |
| size | 130,373 |
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:
#[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.talaarch64 assembly (with Rust
shims on either side), and runs 40-50% faster than the reference
implementationThe 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 ROMsraven-gui is a full-fledged GUI, which runs both as a native application and
on the webThe 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.