Skip to main content

Download a released binary

Each slim release ships eight profiles on four platforms, from Releases, under tags such as slim-v26.6.0-8.

Pick a profile first

Start with min and add only the capabilities your program needs.

profileFFITLSSQLiteBest fit
minscripting and embedding
ffitjs:ffi
tlsHTTPS, WSS and TLS sockets
sqlitetjs:sqlite and persistent localStorage
ffi-tlsnetworked native-library use
ffi-tls-sqliteall published optional features
tuned-minmin, different size/speed codegen
balanced-minmin, faster QuickJS codegen

tuned-min and balanced-min add no API. See Size and speed for their measured trade.

Every profile keeps Web Crypto, REPL and tjs compile. Every profile removes WebAssembly, tjs:wasi, plus tjs eval, serve, bundle, test, app and help.

Install

VERSION=slim-v26.6.0-8
ASSET=txiki-slim-min-linux-x86_64.zip

curl -fsSLO "https://github.com/lukasMega/txiki.js-with-slim-builds/releases/download/$VERSION/$ASSET"
unzip "$ASSET"
cd "${ASSET%.zip}"
chmod +x tjs
echo 'console.log(tjs.version)' | ./tjs

Assets are named txiki-slim-{profile}-{platform}.zip, where the platform is linux-x86_64, linux-arm64, macos-arm64 or windows-x86_64. Each archive unpacks into its own directory containing the executable, BUILDINFO.txt and SHA256SUMS.

Inspect any binary through stdin:

echo 'console.log(tjs.engine.features, tjs.engine.cli)' | ./tjs
Windows installation and checksum verification
$Version = 'slim-v26.6.0-8'
$Asset = 'txiki-slim-min-windows-x86_64.zip'

Invoke-WebRequest -Uri "https://github.com/lukasMega/txiki.js-with-slim-builds/releases/download/$Version/$Asset" -OutFile $Asset
Expand-Archive $Asset -DestinationPath .
Set-Location ($Asset -replace '\.zip$','')
'console.log(tjs.version)' | .\tjs.exe

A single release-level SHA256SUMS.txt verifies every unpacked executable. Run it from the archives' parent directory, not from inside a profile directory:

cd ..
curl -fsSLO "https://github.com/lukasMega/txiki.js-with-slim-builds/releases/download/$VERSION/SHA256SUMS.txt"
sha256sum --check --ignore-missing SHA256SUMS.txt

--ignore-missing verifies the profile you downloaded without requiring the other 31 artifacts. BUILDINFO.txt records the profile, codegen mode, feature vector, platform, size in bytes, SHA-256 and MSVC status.

Platform caveats and recorded archive sizes

On MSVC nine of the eleven size and hardening levers are compiled out, so Windows binaries are roughly 10–27% larger than their Unix counterparts and are shipped as a deliberately non-hardened profile. Linux GCC has no -Oz either, so min, tuned-min and the current balanced-min recipes collapse onto the same binary on both Linux and Windows — macOS arm64 is the only platform where the codegen choice changes anything. slim-v26.6.0-8 was built with the previous balanced recipe, so its balanced-min row does not represent the next release.

Compressed archive sizes from slim-v26.6.0-8 (2026-08-24):

profilelinux-x86_64linux-arm64macos-arm64windows-x86_64
min1.03 MB1.10 MB1.07 MB1.31 MB
tuned-min1.03 MB1.10 MB1.05 MB1.31 MB
balanced-min1.03 MB1.12 MB1.11 MB1.32 MB
ffi1.06 MB1.13 MB1.10 MB1.35 MB
tls1.31 MB1.40 MB1.36 MB1.62 MB
sqlite1.49 MB1.62 MB1.57 MB1.79 MB
ffi-tls1.34 MB1.43 MB1.39 MB1.66 MB
ffi-tls-sqlite1.80 MB1.95 MB1.90 MB2.14 MB

These are ZIP sizes; the unpacked executable is roughly twice as large. Build from source when none of the eight fits — for example TLS without the embedded CA bundle, or WebAssembly.