Ash runs .hl files compiled from Haxe. Its tiered JIT compiles frequently used functions
in the background. You can also compile the same bytecode to a native executable or WebAssembly.
Ash handles compilation, garbage collection, and threading. It uses the bytecode and native library interfaces your HashLink project already targets.
The installer downloads a prebuilt release for your platform. You'll also need Haxe to compile source code to bytecode.
Installs ash
in ~/.ash/bin and adds that directory to your PATH. Ash requires a 64-bit system.
On Windows, run this in PowerShell:
To emit object files for additional targets such as MIPS, LoongArch, or SPARC, install the -dev build. It includes every LLVM backend.
The second command is for PowerShell. The -dev build is available for Linux x86_64, macOS arm64, and Windows x86_64. On other platforms, the installer uses the standard build.
Ash runs HashLink bytecode, so
build a .hl file with Haxe, or use one you already have.
Pass your
.hl file to Ash. Optionally, choose a preset for a game, server, or short script.
--build compiles the bytecode and links an executable using your system's C toolchain. Set CC to select a different compiler driver.
Native executables target the build machine. To build WebAssembly, add --target wasm32-wasip1.
Ash includes the wasm linker and runtime. Run the module with ash run mygame.wasm, or use ash serve to open the generated page in a browser. See the WebAssembly guide for thread support, browser setup, and limitations.
CI runs the official Haxe test suite without modifications on every push. The results show pass rates for each execution mode.
Ash runs on macOS, Linux, and Windows. The table below lists runtime platforms, WebAssembly support, and targets that support object-file output.