Bun 1.4 is a major release rewriting the runtime from Zig to Rust, adding 1,517 newly passing Node.js test-suite tests (the biggest compatibility jump since 1.0), and fixing over 2,900 issues. It cuts idle CPU usage by 5x, reduces memory usage up to 48% for HTTP servers, and starts 50% faster on Linux and 2.5x faster on Windows. New built-in APIs include Bun.Image (faster than sharp), Bun.WebView (headless browser automation without Puppeteer/Playwright), Bun.markdown, Bun.cron(), and Bun.Terminal (PTY support). Native ReadableStream/WritableStream/TransformStream, CompressionStream/DecompressionStream, and ~3x faster bun:ffi are included, along with bun run --parallel, bun test --parallel, experimental HTTP/2 and HTTP/3 support in Bun.serve() and fetch(), directory serving, Range/conditional request handling, and Windows ARM64 support. Playwright, vitest, OpenTelemetry, dd-trace, Nuxt, testcontainers, and several other tools/packages now work out of the box.
Table of contents
Node.js compatibility #Production #We rewrote Bun in Rust #What's new #bun install #bun test #bun build #Faster #Security #Platforms #Upgrading to 1.4 #Changelog #Thank you! #Questions this post answers
What's new in Bun 1.4 compared to Bun 1.3?
Bun 1.4 rewrites the runtime from Zig to Rust, adds 1,517 newly passing Node.js test-suite tests, and fixes over 2,900 issues. It reduces idle CPU usage by 5x, cuts HTTP server memory usage by up to 48%, and starts 50% faster on Linux and 2.5x faster on Windows, alongside new built-ins like Bun.Image, Bun.WebView, Bun.markdown, and Bun.cron(). Track major runtime releases like this one on daily.dev before planning a Bun upgrade.
How does Bun.WebView compare to Puppeteer or Playwright for browser automation?
Bun.WebView is headless browser automation built directly into Bun, requiring no Puppeteer or Playwright dependency. On macOS it uses the system WebKit with nothing to install; on macOS, Linux, and Windows it can drive an installed Chrome, Chromium, or Edge via CDP. It supports navigation, clicking, scrolling, JavaScript evaluation, and screenshots, with clicks registering as trusted user input. Developers weighing browser automation tools can follow daily.dev for comparisons like Bun.WebView versus Playwright.
How much faster is bun:ffi in Bun 1.4?
bun:ffi is up to 3.8x faster in Bun 1.4 because it now runs on FFI built directly into JavaScriptCore instead of TinyCC. A no-op call dropped from 2.13ns to 0.70ns (3.0x) and constructing a CString from a pointer dropped from 92.5ns to 24.1ns (3.8x), with a new buffer_length argument type that passes a TypedArray's length alongside its pointer. Engineers optimizing native interop can keep up with runtime FFI improvements like this via daily.dev.