
ALT Benchmark chart for bun check, Bun's built-in TypeScript type checker. It compares Bun canary, Bun 1.4.3 and tsc 7.0.2 on four projects, showing time and peak memory for a full type check. mui docs: canary 1.31s, 1.5 GiB. Bun 1.4.3 9.31s, 9.6 GiB, 7.1x slower. tsc 18.04s, 8.3 GiB, 13.8x slower. t3code server: canary 1.47s, 1.5 GiB. Bun 1.4.3 4.53s, 1.6 GiB, 3.1x slower. tsc 22.02s, 7.1 GiB, 15.0x slower. supabase studio: canary 0.63s, 1.6 GiB. Bun 1.4.3 1.67s, 1.9 GiB, 2.7x slower. tsc 8.98s, 4.5 GiB, 14.3x slower. mikro-orm: canary 1.24s, 1.6 GiB. Bun 1.4.3 2.15s, 2.0 GiB, 1.7x slower. tsc 13.41s, 6.8 GiB, 10.8x slower. Benchmarked on a 64-core machine (EPYC 9R14, Linux x64). No cache, default settings.

ALT Bun AoT VS Bun JIT Claude Code, same source, same 5-turn session. AoT runs with the JIT off. Time to interactive 165 ms 216 ms -24% Wall time launch + 5 turns 322 ms 529 ms -39% CPU time Memory at interactive 395 ms 738 ms -46% 56 MB 108 MB -48% Memory after 5 turns 82 MB 159 MB -48% 101 MB Peak memory Executable size target: +100 MB at most 194 MB -48% 430 MB 229 MB +88% Early prototype, macoS arm64. Medians of 8 runs against a fake API server on one MacBook Pro. Memory is phys_footprint. CPU is user + system, all threads. Turns in the JIT build are not CPU bound, so part of the wall time gap is waiting. 28 Sep 2026.

ALT Dark slide with the Bun logo and a "new in Bun" badge. Large headline: "Bun.FetchSession". Subtitle: "fetch() with its own connection pool." Below it, a code sample: const api = new Bun.FetchSession({ proxy: "http://proxy:8080", tls: { ca }, keepAlive: { idleTimeout: 30 }, }); await api.fetch(url); new Octokit({ request: { fetch: api.fetch }, }); "api.fetch" is highlighted in both places. Three cards at the bottom read: "Own pool: isolated keep-alive", "Proxy + TLS: set once per session", "Drop-in: works in any SDK".
Bun@bunjavascriptSep 4United States

ALT Table: "Bun v1.4.1 reduces idle memory usage." Resident memory 3 minutes after 60 seconds of sustained load, lower is better. Columns: Bun 1.4.1, change vs 1.4.0, Bun 1.4.0, Bun 1.3.14, Node.js 26.7. Next.js SSR: 142 MB (−36%), 222, 1303, 195. Vite dev: 157 MB (−17%), 189, 303, 155. Express: 54 MB (−17%), 65, 77, 81. Fastify: 57 MB (−16%), 68, 80, 91. Elysia: 44 MB (no change), 46, 69, 96. Hono: 34 MB (no change), 35, 53, 92. Method: 60 s at a fixed request rate (40k req/s Elysia and Hono, 25k Express and Fastify, 5k Vite dev, 3k Next.js SSR), 64 connections, then 180 s idle; RSS sampled every 100 ms on Linux x64.
Bun@bunjavascriptAug 20United States

United States
Bun@bunjavascriptAug 20United States

United States

United States

ALT In the next version of Bun bun test -timings Records how long each test file takes, then cuts --shard and --parallel work by time and starts the slowest files first. bun test --shard=i/4 --parallel shard 1 shard 2 shard 3 shard 4 split by file count 12.4s 16.5s 18.1s 14.0s . -timings Cl done at 18.1s split by recorded time 18.19 → 13.3s slowest of 4 Cl shards • 27% less wall-clock shard 1 12.4s shard 2 13.3$ shard 3 12.7s shard 4 12.5s Cl done at 13.3s Longest-processing-time first so a slow file is never the tail path order slowest first # record once (any run can) bun test --timings=timings.json --update-timings every CI job bun test --shard=$I/4 —parallel--timings=timings.json 492 files / 318 s of tests, 8-package monorepo fixture (unit 20-600 ms, e2e 2-13 s) • 4 shards × --parallel=8 • wall-clock per shard, Apple M4 Max bun 1.4.0-canary+d3459381b
























