Horizon Rust Engine & Vulkan Ports Guide

Horizon (horizon-rust/horizon, playhorizon.dev) is an MIT-licensed clean-room Rust rewrite of Minecraft: Java Edition 26.3 without a Java Virtual Machine. Paired with Horizon Launcher on desktop and native Vulkan forks on Android (Starling and Rayan-XOO), it boots in roughly three seconds, scales to a 1,024-chunk view distance, and ships zero proprietary Mojang assets.

281 HarnessesDifferential parity checks against vanilla 26.3
~3s Cold Boot3.5x faster to title screen than modded JVM
1,024 ChunksNative Rust renderer & Vulkan mobile ports
Sapphire AMD Radeon RX 7900 XTX graphics card showing dual-axial cooling shroud and PCIe connector
Horizon bypasses OpenGL compatibility layers and JVM garbage collection pauses, feeding multi-threaded chunk meshes directly to desktop GPUs and Android Vulkan drivers.

Select your Horizon desktop or Android build

Switch between upstream launcher@0.2.66 installers, the standalone Linux nightly server archive, and the active Android Vulkan APKs to inspect exact byte counts and SHA-256 digests.

Release binaryhorizon-launcher-setup.exe
Release taglauncher@0.2.66
Verified byte size65,188,352 B (62.17 MiB)
GitHub repositoryhorizon-rust/horizon

Windows 10/11 x64 self-updating installer. Portable x64 zip (22,091,138 B) and Windows ARM64 setup (56,285,696 B) are listed in the ledger below.

SHA-256 digest

e2a57ca7612b9fe87b9089ecd64e471b37f49edc56ab8a095e2ce6f6ee1087d1

Install or launch command

Run horizon-launcher-setup.exe -> Sign in with Microsoft account (Java 26.3 owned) -> Auto-installs nightly engine

Why a clean-room Rust engine changes frame pacing

Founded by Ludovic Marie (@ludovic111) alongside Kacper, Cosmic, levzzz, rdbt, and Anthony S, the Horizon repository replaces legacy JVM heap allocation with compiled Rust crates.

Workload / MetricHorizon (Native Rust)Java 26.3 + Optimization StackMeasured Delta
Cold boot to title screen~3.0 s~11.0 s (Sodium + Lithium + FerriteCore + ImmediatelyFast)3.5x faster startup; zero JVM classloader warmup
Sustained frame rate across view distancesNative multi-threaded Vulkan/GPU submissionLWJGL + Sodium chunk builder with periodic GC pauses+31% to +38% higher average FPS on Ryzen 7 9800X3D + RTX 5080
Maximum view distanceUp to 1,024 chunks with LOD streaming32 to 64 chunks before heap pressure spikesDeterministic Rust arena allocation without stop-the-world GC
Protocol & simulation accuracyVerified by 281 differential test harnessesReference vanilla 26.3 client/server jarsTick-by-tick block, physics, redstone, and packet parity
10,009+GitHub stars on horizon-rust/horizon
664K+Desktop launcher & nightly downloads
+31-38%FPS gain vs modded Java stack
0 BytesProprietary Mojang code in repo

Desktop upstream and Android Vulkan ports explained

Because Horizon is published under the MIT license, Android maintainers have built dedicated mobile frontends with Vulkan batching, touch HUD editors, and shader translators.

Desktop & Dedicated Server

Horizon Launcher & Nightly Engine

On Windows, Linux, SteamOS, and macOS, you install Horizon Launcher (launcher@0.2.66). The launcher verifies Microsoft account ownership of Java Edition, extracts vanilla 26.3 textures and sounds locally, and keeps the nightly client updated. Linux server operators run horizon-server-linux-x86_64.tar.gz directly without the launcher.

Zero-PC Android Port

Starling Client (v0.8.0 & Preview)

Co-founded by @JuanLuci and @Vasysik (merging JuanLuci/starling with Vasysik/horizon-android after v0.7.8), Starling has crossed 399,500 release downloads. It generates derived registries directly on your phone in roughly 79 seconds while you fish in a mini-pond screen, translates Iris/OptiFine shaders to Vulkan, and compiles .hnmod crates offline.

ViaHorizon & Macro Forks

Rayan-XOO 0.4.7 & GoyDevv v1.0.1

Rayan-XOO/horizon adds ViaHorizon protocol translation for joining 1.20.2 through 26.2 servers plus prebuilt entity_culling.hnmod and orbital.hnmod binaries, requiring a one-time 4 MB horizon-derived.zip pack. GoyDevv/Horizon-Android focuses on GoyControl 4-action sequential touch macros and Android Storage Access Framework (SAF) folders.

RepositoryTarget DevicesCurrent ReleaseAsset PreparationMod & Shader Support
horizon-rust/horizonWindows (x64/ARM64), Linux x86_64, Steam Deck, macOS (arm64/x64)launcher@0.2.66 & nightly (9f42064)Horizon Launcher signs in with Microsoft or reads local 26.3 install.hmod data packs + compiled Rust .hnmod native ABI
starling-client/starlingAndroid 8.0+ (arm64-v8a, armeabi-v7a, x86_64, x86)v0.8.0 stable & test-0.8.1-2 previewZero-PC setup: prepares 26.3 files on-phone in ~79s via temporary JVMIris/OptiFine shader translation, StarlingVisuals.zip, on-phone .hnmod compiler
Rayan-XOO/horizonAndroid 64-bit phones & tablets (dev.horizonlab.horizon)android-v0.4.7 (65,624,188 B)~525 MB in-app download + ~4 MB PC-built horizon-derived.zipPrebuilt Android .hnmod ABI 4 (entity_culling, orbital) + ViaHorizon (1.20.2-26.2)
GoyDevv/Horizon-AndroidAndroid (arm64-v8a, armeabi-v7a, x86_64, x86)v1.0.1 (com.goydevv.horizon)Built-in SAF document provider & mini archive manager.hmod loader, GoyControl 4-slot sequential macro buttons, 260 FPS ceiling mode

Android folder path, derived pack & GPU helper

Choose your Android APK branch, mobile GPU family, and setup goal to generate verified scoped-storage paths, horizon-prepare commands, and crash recovery steps.

Verified Android paths & GPU profile
# Verified Android Target Profile
Port & Package: dev.horizonlab.horizon (Rayan-XOO/horizon 0.4.7)
Active Folder:  /storage/emulated/0/Android/data/dev.horizonlab.horizon/files/
Saves Path:     /storage/emulated/0/Android/data/dev.horizonlab.horizon/files/saves/
Mods Path:      /storage/emulated/0/Android/data/dev.horizonlab.horizon/files/mods/
Shaders Path:   /storage/emulated/0/Android/data/dev.horizonlab.horizon/files/shaderpacks/
Mod Formats:    .hnmod (prebuilt aarch64 cdylib) + .hmod

# Recommended GPU Settings
Renderer Mode:  Vulkan + Fast Opaque Pass (ON)
Render Scale:   100% (or Auto shader profile in Starling)
Chunk Distance: 12-16 chunks (Adreno 650-830) / 8 chunks (Adreno 610)
Terminal & ADB commands
# 1. On PC (JDK 25 + Rust): generate horizon-derived.zip once from 26.3 server.jar
git clone -b android-port https://github.com/Rayan-XOO/horizon.git
cd horizon
cargo run --release -p horizon-prepare -- --prepare --server-jar ~/Downloads/server.jar
bash packaging/android/make_derived_pack.sh

# 2. Push horizon-derived.zip (~4 MB) to phone after launching app once
adb push target/android/horizon-derived.zip /sdcard/Android/data/dev.horizonlab.horizon/files/

Fixes 'No derived pack: put horizon-derived.zip in the app folder'. Rayan-XOO downloads ~525 MB in-app over Wi-Fi, then merges your 4 MB derived pack.

Samsung Galaxy S24 Ultra smartphone hardware frame used for Snapdragon Adreno Vulkan testing
Snapdragon 8 Gen 2 and 8 Gen 3 devices run Starling v0.8.0 with Vulkan Fast Opaque Pass enabled, hitting 59 FPS in Complementary Shaders (Voxel Profile) and 87 FPS in MakeUp Ultra Fast.
AMD Ryzen desktop processor heatspreader representing multi-core Rust chunk compilation
On desktop and Linux servers, Horizon distributes chunk meshing, lighting, and entity tick evaluation across worker threads without garbage-collector stop-the-world stalls.

Verify installer and APK SHA-256 digests locally

Drop any downloaded .exe, .dmg, .AppImage, .tar.gz, .zip, .apk, or .hnmod file below. Your browser hashes the file locally via WebCrypto and checks it against the GitHub release ledger without uploading a single byte.

Drop local .exe, .dmg, .AppImage, .tar.gz, .zip, .apk, or .hnmod file here (or click to browse; hashed locally via WebCrypto with zero upload)
Waiting for a local Horizon / Starling binary or 64-character SHA-256 digest.

Gamepads for desktop and Android ports

Horizon desktop, Starling v0.8.0, and Rayan-XOO 0.3.7+ support Bluetooth and USB X-Input/D-Input controllers, automatically hiding touch buttons while you play.

8BitDo Ultimate 2C Wireless Controller

Hall-effect sticks and triggers with low-latency 2.4G dongle and Bluetooth for desktop Horizon and Android phones.

View on Amazon

GameSir Super Nova Hall-Effect Gamepad

Drift-free Hall sensors, swappable ABXY layout, and quiet face buttons tested across Windows, Linux, and Android.

View on Amazon

8BitDo Pro 2 Bluetooth Gamepad

Symmetrical dual-stick layout with X-Input, D-Input, and Android modes plus programmable rear hotbar paddles.

View on Amazon

GuliKit KK3 Max Wireless Controller

TMR electromagnetic sticks and 1000 Hz polling rate for high-refresh chunk exploration on desktop and mobile.

View on Amazon

Affiliate disclosure: As an Amazon Associate, horizonrust.wiki earns from qualifying purchases at no added cost to you.

Technical questions on Horizon Rust and Android ports

Direct answers verified against upstream Cargo workspaces, release notes, and issue trackers.

Does Horizon include Minecraft assets or bypass owning the game?

No. Neither horizon-rust/horizon nor its Android ports distribute Mojang code, textures, sounds, or server jars. On desktop, Horizon Launcher authenticates your Microsoft account or reads an existing Java Edition 26.3 installation to prepare local assets. On Android, Starling and Rayan-XOO generate or merge derived data locally on your device.

Which Android APK should I install: Starling v0.8.0 or Rayan-XOO 0.4.7?

Install Starling v0.8.0 (or test-0.8.1-2 on Mali/PowerVR phones) if you do not have a PC, want Iris/OptiFine shaderpacks, or use Ely.by accounts, because Starling builds all 26.3 files directly on your phone in about 79 seconds. Choose Rayan-XOO 0.4.7 if you need ViaHorizon to connect to older 1.20.2 through 26.2 multiplayer servers and have a PC to generate the 4 MB horizon-derived.zip file once.

Why shouldn't I run horizon-windows-x64.zip directly without Horizon Launcher?

The client archives under the upstream nightly tag (horizon-windows-x64.zip, horizon-linux-x86_64.tar.gz, horizon-macos-arm64.zip) expect prepared 26.3 registries, authentication tokens, and staged native mod allocators provided by Horizon Launcher (launcher@0.2.66). Only horizon-server-linux-x86_64.tar.gz is designed to run standalone from a terminal.

Do Fabric, Forge, or NeoForge Java .jar mods run inside Horizon?

No. Horizon has no Java Virtual Machine, so JVM bytecode mods (.jar) cannot load. Instead, Horizon uses lightweight .hmod content/data archives and compiled Rust dynamic libraries (.hnmod built with horizon-mod-sdk and horizon-native-abi).

How do I fix 'No derived pack: put horizon-derived.zip in the app folder'?

That prompt appears in Rayan-XOO/horizon when horizon-derived.zip is missing. Either build horizon-derived.zip (~4 MB) on a PC using horizon-prepare against the 26.3 server.jar and copy it to /sdcard/Android/data/dev.horizonlab.horizon/files/horizon-derived.zip (or pick it via the 0.4.5+ file picker), or install Starling v0.8.0 which generates derived assets on-phone without a computer.

Are Bluetooth and USB controllers supported on desktop and Android?

Yes. Desktop builds, Starling v0.8.0, and Rayan-XOO 0.3.7+ support Bluetooth and wired X-Input/D-Input gamepads such as 8BitDo, GameSir, Backbone One, and DualSense, automatically hiding touch overlays when stick or trigger input is active.