Kestrel is an implementation of the Uxn virtual machine and Varvara ecosystem in OCaml.
Find a file
2026-02-02 12:26:24 -03:00
boot * 2026-02-02 12:26:24 -03:00
exe * 2026-02-02 12:26:24 -03:00
lib reorganization and project rename 2026-01-03 12:45:30 -03:00
.gitignore * 2026-02-02 12:26:24 -03:00
.ocamlformat initial import 2025-11-27 16:39:54 -03:00
bootstrap.sh * 2026-02-02 12:26:24 -03:00
dune-project reorganization and project rename 2026-01-03 12:45:30 -03:00
kestrel.opam reorganization and project rename 2026-01-03 12:45:30 -03:00
LICENSE initial import 2025-11-27 16:39:54 -03:00
Makefile initial import 2025-11-27 16:39:54 -03:00
README.md * 2026-02-02 12:26:24 -03:00
shell.nix * 2026-02-02 12:26:24 -03:00

Kestrel

Kestrel is:

  • an implementation of the Uxn virtual machine as a library in OCaml
  • an implementation of the Varvara ecosystem using said library, supporting the devices needed for command-line programs.

Building

Kestrel requires OCaml 5.3 or upper, as it uses the newly introduced effects syntax.

There are no requirements aside from the OCaml standard library, so it can be built simply using dune.

$ dune build

It then can be run using dune exec -- kestrel.

$ dune exec -- kestrel file.rom

The uxnmin program, which is similar to upstream's in functionality, can be built without dune:

$ ocamlopt exe/uxnmin.ml -o uxnmin

Bootstrapping

Since Kestrel supports the needed Varvara devices for running the Drifblim assembler, it can be used to bootstrap the ecosystem. Bundled in the repository are copies of the Drifloon hex dump, the source code for Drifblim, and dzoe's xh.rom.

A bootstrap script is provided that builds the assembler and some test ROMs.