Repository navigation
Pi-Bolt 0.9.4 brings fixes from upstream Bun and WebKit into its engine: Pi-Bolt no longer stops at launch on some ARM64
CPUs, and child processes, timers and connections behave better. Pi is the same as in 0.9.3.
Fixes
- Linux on ARM64 and Android: Pi-Bolt no longer stops at launch with an illegal instruction on CPUs that report SVE2
without SVE (oven-sh/bun#45099). - Commands run by Pi: a child process no longer inherits a non-blocking stdout or stderr, so a program that does not
expect one no longer fails or loses output, and output written while the pipe is full is no longer dropped
(oven-sh/bun#43868). A pipe is no longer read again after a read on it failed (oven-sh/bun#43900). - Timers while streaming: a connection whose peer keeps the receive buffer full no longer stops timers such as the spinner
and timeouts (oven-sh/bun#45278). - Model requests: fetch sets up TLS once per connection instead of once per request (oven-sh/bun#44507). Over HTTP/2, a
request is rejected on a TLS alert after the handshake, and a connection that went silent after an abort is no longer
reused (oven-sh/bun#45422). - Plugins: a module removed while its
import()is still loading no longer crashes Pi-Bolt (oven-sh/WebKit#748). - Containers: the memory limit of a cgroup v2 is seen where a cgroup v1 hierarchy exists beside it (oven-sh/WebKit#808).
spawnSync(oven-sh/bun#44581) andTextEncoder.encodeof a substring (oven-sh/bun#45281) are fixed, and the allocator is
mimalloc 3.5.3 (oven-sh/bun#44560, oven-sh/bun#44575).
Measured on GitHub's runners (one CPU, the same Pi on 0.9.3's runtime and on 0.9.4's; x86-64 / ARM64): the startup peak memory
is 42 / 39 MB, from 53 / 42 MB. Time and CPU at startup, for a headless prompt, in an interactive session and while
streaming, and the memory left once idle, are within a few percent of 0.9.3's.
Engine
All four runtimes are new, built by the runtime workflow on GitHub's runners (run 38928351471). From the engine trees that
patches/webkit.patch and patches/bun.patch make on the pinned sources (git rev-parse HEAD^{tree}): WebKit
5bc790d94533812cb9ddd652a1428cb5438e3b59, Bun 397b79f57365fa286a7092dc31145e64890d9d8c.
| Runtime | Built on | bun.exe / bun SHA-256 |
|---|---|---|
| Linux x86-64 | GitHub's ubuntu-24.04 runner, glibc 2.17 sysroot |
2aab0c6c4004f887eb96d4aa817aaa74ddff4cb47ba96362e1c7f8784c233025 |
| Linux ARM64 | GitHub's ubuntu-24.04-arm runner, glibc 2.17 sysroot |
fd372fcd3d20ba31652512fd6c842280a54e1dc11404eb817aa4a0870b1cc5df |
| macOS arm64 | GitHub's macos-15 runner |
b97013e1f151bfbafe217b1404eb9468326a753195e10ef31c1bb6a0faa1151f |
| Windows x64 | GitHub's windows-2025 runner |
496dad6ae54a90c80e3ebf089152c75a085492f5e1a661bff89059c14642b233 |
Install
curl -fsSL https://pi-bolt.opensec.in/install.sh | shirm https://pi-bolt.opensec.in/install.ps1 | iexpowershell -c "irm https://pi-bolt.opensec.in/install.ps1 | iex"or pi-bolt update, or npm install -g --allow-scripts=pi-bolt pi-bolt, or bun add -g --trust pi-bolt.
| Asset | For |
|---|---|
pi-bolt-linux-x64.tar.xz / .tar.gz |
Recommended on Linux x86-64. CPUs with AVX2 (Intel Haswell 2013+, AMD Zen+). |
pi-bolt-linux-x64-baseline.tar.xz / .tar.gz |
Any x86-64 CPU with SSE4.2. |
pi-bolt-linux-x64-jit.tar.xz / .tar.gz |
JIT also on, for plugins loaded at run time. |
pi-bolt-linux-arm64.tar.xz / .tar.gz |
Linux on ARM64, any 64-bit ARM CPU; Android in Termux, with the installer. |
pi-bolt-linux-arm64-jit.tar.xz / .tar.gz |
Linux on ARM64, JIT also on. |
pi-bolt-darwin-arm64.tar.xz / .tar.gz |
macOS. Macs with Apple silicon, macOS 13 or later. |
pi-bolt-darwin-arm64-jit.tar.xz / .tar.gz |
macOS, JIT also on. |
pi-bolt-win32-x64.zip |
Windows. Windows 10 (1809) or 11 on x64; compiled code on AVX2 CPUs, bytecode on others. |
pi-bolt-win32-x64-jit.zip |
Windows, JIT also on. |
pi-bolt-runtime-linux-x64.tar.gz, pi-bolt-runtime-linux-arm64.tar.gz, pi-bolt-runtime-darwin-arm64.tar.gz, pi-bolt-runtime-win32-x64.zip |
The Pi-Bolt Bun runtime, for compiling plugins in. |
pi-bolt-kit-linux-x64.tar.gz, pi-bolt-kit-linux-arm64.tar.gz, pi-bolt-kit-darwin-arm64.tar.gz |
What pi-bolt compile builds with, besides the runtime. |
Linux x86-64 or ARM64 with glibc 2.17 or later; Android 7 or later on 64-bit ARM, in Termux; macOS 13 or later on Apple silicon;
Windows 10 1809 or later, or Windows 11, on x64.