Skip to content
Tech News
← Back to articles

Bun 1.4

read original more articles
Why This Matters

Bun 1.4 significantly enhances compatibility with Node.js by passing over 1,500 additional tests, while also optimizing performance with reduced CPU and memory usage and faster startup times. The update introduces new features like Bun.Image, Bun.WebView, and Bun.cron(), and rewrites Bun from Zig to Rust, marking a major milestone in its development as a full-stack JavaScript and TypeScript toolkit. These improvements make Bun a more robust, efficient, and compatible alternative for developers building modern web applications.

Key Takeaways

Bun is the complete toolkit for building and testing full-stack JavaScript and TypeScript applications. If you're new to Bun, you can learn more from the Bun 1.0 blog post.

curl powershell npm brew docker curl curl -fsSL https://bun.sh/install | bash powershell powershell -c " irm bun.sh/install.ps1 | iex " npm npm install -g bun brew brew install oven-sh/bun/bun docker docker pull oven/bun

Bun 1.4 adds +1,517 tests from the Node.js test suite - our biggest jump in Node.js compatibility since Bun 1.0. Bun v1.4 also fixes over 2,900 issues. It reduces idle CPU usage by 5x, reduces memory usage by up to 35%, and starts 50% faster on Linux. It adds Bun.Image , Bun.WebView , Bun.markdown , Bun.cron() , Bun.Terminal , bun run --parallel , bun test --parallel , bun audit fix , bun dedupe , and bun prune . And it rewrites Bun from Zig to Rust.

This post covers everything we've shipped since Bun 1.3.0 (with new to Bun v1.4 tagged).

To upgrade:

bun upgrade

Bun is designed to be a drop-in replacement for Node.js. We've added +1,517 tests from the Node.js test suite to run on every commit of Bun.

node:http , node:fs , node:cluster , node:timers , node:zlib , node:vm , and node:stream pass 97% of Node's own tests; node:quic 99%; node:events , node:trace_events , and node:sqlite 100%.

Node.js v26.3.0 test suite · passing on every commit + 1,517 newly passing tests ▶ play ↻ replay ▶ play quic 235 / 237 + 235 http rewritten 403 / 415 + 193 fs 349 / 358 + 133 tls 191 / 224 + 106 http2 rewritten 261 / 280 + 102 repl 82 / 109 + 77 stream 254 / 262 + 61 worker 116 / 157 + 57 process 160 / 190 + 45 net 171 / 191 + 39 https 61 / 65 + 39 internal 68 / 108 + 35 cluster 85 / 88 + 31 trace_events 30 / 30 + 30 webcrypto 39 / 50 + 28 crypto 123 / 135 + 27 vm 98 / 101 + 25 webstreams 28 / 38 + 23 test_runner 28 / 81 + 21 module 68 / 93 + 19 diagnostics_channel 36 / 69 + 19 sqlite 18 / 18 + 18 child_process 105 / 116 + 15 inspector 22 / 110 + 14 Per-module pass counts from Bun’s vendored copy of Node’s test/parallel suite, Bun 1.3 → 1.4. The tick marks the 1.3 baseline.

Bun is not 100% compatible with Node.js yet. In practice, much of the existing JavaScript ecosystem just works. You can more closely track Bun's Node.js test suite progress here.

... continue reading