Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Cross-Platform

NicyRuntime supports Windows, macOS, Linux, and Android with platform-specific considerations.

Supported Platforms

PlatformArchitectureStatusLibrary Extension
Windowsx64✅ Stable.dll
Windowsx86✅ Stable.dll
WindowsARM64⚠️ Beta.dll
macOSx64✅ Stable.dylib
macOSARM64✅ Stable.dylib
Linuxx64✅ Stable.so
LinuxARM64✅ Stable.so
Linuxx86✅ Stable (no vector4).so
AndroidARM64✅ Stable.so
AndroidARMv7✅ Stable.so

Platform-Specific Features

Windows

FeatureStatus
CodeGen/JIT✅ Supported
High-Resolution TimerNICY_HIRES_TIMER=1
SEH Crash Protectionruntime.loadlib()
luau-vector4✅ Supported

macOS

FeatureStatus
CodeGen/JIT✅ Supported
High-Resolution Timer❌ No effect (already high-res)
SEH Crash Protection❌ Not applicable
luau-vector4✅ Supported

Linux

FeatureStatus
CodeGen/JIT✅ Supported (x64, ARM64)
High-Resolution Timer❌ No effect
SEH Crash Protection❌ Not applicable
luau-vector4✅ x64/ARM64 only

Android

FeatureStatus
CodeGen/JIT❌ Disabled (stability)
High-Resolution Timer❌ Not applicable
SEH Crash Protection❌ Not applicable
luau-vector4❌ Disabled

Cross-Compilation

Building from Windows

# Build for your current platform
.\build.ps1 -target user

# Build for all platforms
.\build.ps1 -target all

Building from Linux/macOS

# Install zig and cargo-zigbuild
cargo install cargo-zigbuild --locked

# Build for Windows x64
cargo zigbuild --release --target x86_64-pc-windows-gnu -p nicyruntime

# Build for Linux ARM64
cargo zigbuild --release --target aarch64-unknown-linux-gnu -p nicyruntime

Building for Android

# Install Android NDK r26d
# Install cargo-ndk
cargo install cargo-ndk --locked

# Build for ARM64
cargo ndk -t arm64-v8a build --release -p nicyruntime

# Build for ARMv7
cargo ndk -t armeabi-v7a build --release -p nicyruntime

Path Handling

NicyRuntime handles path separators correctly on all platforms:

-- Works on all platforms
local mod = require("modules/myModule")

-- Platform-specific paths
local home = os.getenv("HOME") or os.getenv("USERPROFILE")

Line Endings

Luau source files should use LF (\n) line endings. CRLF (\r\n) files on Windows are handled correctly by the parser.

See Also