Skip to content

Champollion

Run riscv64 Linux programs on Apple silicon. rvrun loads the ELF, translates it instruction by instruction, and forwards its Linux syscalls to the Mac.

Champollion is a user-mode RISC-V (RV64GC) Linux binary translator. A program runs as an ordinary process on the host: no VM boots and no guest kernel is involved, and the Linux system calls it makes are served by the translator or forwarded to the host’s.

Terminal window
$ rvrun tests/fixtures/hello
hello from riscv64

🚀 Get started

Build rvrun from source and run the committed fixtures. Getting started

🧠 How translation works

From ELF loading to decoded-block caches, the JIT, and syscall dispatch. Translation

🔀 Direct mode and VM mode

On the Mac itself, or inside an arm64 Linux VM with raw syscall passthrough. The two modes

📖 CLI reference

Every flag and environment variable rvrun understands. CLI reference

M5 is done, and VM mode’s done criterion is met: riscv64 container images run on the Mac, and Alpine and Debian roots run apt, CPython, and other programs. Project status lists what works, the measured performance, and the known gaps.