raven

An implementation of the Uxn CPU and Varvara Ordinator

MPL-2.0 License

Stars
34

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.