jq 1.8.2
Filter JSON, add decimal prices, sort Unicode names and read real files.
printf '{"answer":42}\n' |
./zig-out/bin/universe \
artifacts/public-apps/jq '.answer'
Linux, Windows and library-free macOS guests visit an ARM64 Mac. UNIVERSE decodes their instructions and translates supported OS calls itself.
An ELF, PE or library-free Mach-O binary enters. UNIVERSE decodes its instructions and translates its OS calls on an ARM64 Mac.
These are recorded outputs from real, source-built guests in our local regression suite. Pick an example to see its command and result.
# host: Apple M2 ยท ARM64 macOS 26.6 # guest: static Linux x86-64 ELF64 $ ./zig-out/bin/universe artifacts/guests/x86_64/hello-asm Hello from x86-64 Linux!
Official Linux and Windows x86-64 releases, unchanged. JSON, text, file searches, BusyBox utilities, shell scripts, external pipelines and archive workflows run on Apple M2 in both interpreter and JIT modes. Build current main and download the verified apps โ.
Filter JSON, add decimal prices, sort Unicode names and read real files.
printf '{"answer":42}\n' |
./zig-out/bin/universe \
artifacts/public-apps/jq '.answer'
Search text with regexes, print line numbers and scan directories with two guest workers.
printf 'alpha\nbeta\ngamma\n' |
./zig-out/bin/universe \
--allow-files \
artifacts/public-apps/rg --threads 1 \
--color never -n '^(alpha|gamma)'
Create ZIP and threaded 7z archives, extract folders, preserve timestamps and hash real files.
./zig-out/bin/universe \
--allow-files \
artifacts/public-apps/7zzs a \
-tzip -mmt=off -mx=1 \
artifacts/universe-docs.zip README.md
Run the original Windows executable. ZIP/7z round trips, Unicode filenames and hashes work.
python3 scripts/public-apps.py --windows
./zig-out/bin/universe \
--allow-files \
artifacts/public-apps/7za.exe a \
-tzip -mmt=off -mx=1 \
artifacts/windows-docs.zip README.md
Find files, directories and symlinks. Unicode names, ignore rules, exact paths and two-thread searches pass.
./zig-out/bin/universe --allow-files \
--max-instructions 30000000 --timeout-ms 30000 \
artifacts/public-apps/fd --threads 2 \
--color never --type f --extension c . examples
Format, filter, hash and copy real files. Run selected shell scripts, external pipelines, signal traps and background jobs. Internal null/zero devices and synthetic /proc/mounts do not expose host device or mount tables. Try guest devices + a background job โ
./zig-out/bin/universe \
artifacts/public-apps/busybox \
printf '%s:%04d\n' hello 42
Run unchanged apps with their original Linux libraries. Greetings, sorting, hashes, simple and long listings, and file metadata pass. Try dynamic Linux apps โ
python3 scripts/debian.py
./zig-out/bin/universe --allow-files \
--sysroot artifacts/debian-hello-amd64/sysroot \
artifacts/debian-hello-amd64/sysroot/usr/bin/hello
SHA-256 pinned downloads ยท 334 static Linux + 118 Debian/glibc + 34 Windows checks pass across both engines ยท CLI scope. Windows denied-access exits now run the app's own C++ cleanup and catch code. Linux guest threads also extract the Windows release through UNIVERSE itself. GUI apps and general app compatibility are future destinations.
Working examples, honest boundaries. Execution below is verified on Apple M2 / macOS 26.6 ARM64.
| Guest | Format | Verified examples | Level |
|---|---|---|---|
| ๐ jq + ripgrep + 7-Zip + fd + BusyBox / x86-64 | Static ELF64 | Official Linux binaries: JSON/text processing, threaded file searches, Unicode/filter/ignore paths, ZIP/7z archives, hashing, BusyBox utilities/file copies, virtual identity, selected shell scripts, external commands and error exits | CLI workflows |
| ๐ฆ 7-Zip / Windows x86-64 | PE32+ | Official unchanged binary: 34 archive/hash/error workflows pass, including C++ cleanup and catch on denied access | CLI workflows |
| ๐ง Linux / x86-64 | ELF64 | Assembly, core C fixtures, PIE, static musl and pthread TLS/mutex/condition/join checks; MMX integer and SSSE3 forms, XMM bridges and floating conversions, bounded RCP/RSQRT, PUSHFW/PUSHFQ, byte-checked streaming stores and masks, POPCNT/BSWAP, SSE4.2 CRC32C/PCMPGTQ and selected SSE2โSSE4.1 suites | Executed |
| ๐ musl / x86-64 + AArch64 + RISC-V LP64 | Dynamic ELF64 / PIE | Optional DSO, constructor and single-thread TLS fixture | Experimental |
| ๐ง Linux / RISC-V | ELF64 | Ten C fixtures in both integer variants, word/doubleword atomics and musl pthreads | Executed |
| ๐ง Linux / AArch64 | ELF64 | Integer/NEON fixtures, 8,448 TBL/TBX/MLA/MLS queries per engine matching native ARM64 bytes, checked LDAR/STLR and musl pthread pipe transfers | Executed |
| ๐ช Windows / x86-64 | PE32+ | Terminal input/control callbacks, shared file views, fixed/movable local memory, message diagnostics, current/temp directories, logical C drive, directory/link reparse metadata, file/stream enumeration, loaded module paths, UTF-8/UTF-16 conversion, virtual CPU/memory and disk-space queries, file mutations/metadata/times, calendar/local clocks, guest DLLs/TLS, OLEAUT32/USER32/ADVAPI32 subsets, legacy CRT and single-thread events/semaphores/waits/locks | Executed |
| ๐งฐ BusyBox / x86-64 | Static ELF64 | Selected text + file applets, including grep, sed and touch | Applet subset |
| ๐๏ธ SQLite / x86-64 | Static ELF64 | Persisted transactions, rollback, VACUUM, native reopen and lock contention | Batch CLI subset |
| ๐ macOS / x86-64 + ARM64 | Mach-O64 | Five library-free console, argv/env, memory and file fixtures | Executed |
Partial compatibility. No complete CPU ISA, arbitrary app
compatibility or full shell functionality is claimed. Linux host builds are
cross-compiled; execution there is unverified. This page follows
the v0.2.1 release and current main. File mutations
require --allow-files.
Architecture-specific decoders feed a small universal IR. Checked guest memory, a Zig interpreter and a native ARM64 register-block JIT do the execution.
The JIT is optional. It accelerates our measured RISC-V workload and slows down the measured x86 and AArch64 cases.
See the actual measurements โStep, set a breakpoint, inspect registers, dump UIR and trace syscalls.
The loaders, decoders, guest memory, interpreter and JIT belong to UNIVERSE.
Guest file access is denied by default. Tested Linux file
mutations require --allow-files.
Clone the project, build the runtime and compile the checked-in guests. Then send a Linux x86-64 binary through UNIVERSE.
Open the launch manual โgit clone https://github.com/OthmaneBlial/universe.git
cd universe
zig build -Doptimize=ReleaseSafe
python3 scripts/fixtures.py
./zig-out/bin/universe artifacts/guests/x86_64/hello-asm
The core idea works. Broader application compatibility is the next expedition: more instructions, richer OS behavior and real programs driving each regression.