
Image: Bun
Why it mattersTeams running Bun servers can now accept HTTP/2 clients without a separate listener, use much less resident memory on idle Node.js hosts, and deliver far smaller bundles for libraries that re-export their public API through export star as.
The Bun team has released Bun 1.4.1, a patch release published on 4 September 2026 that closes 202 issues and addresses 236 up-vote reactions on the tracker. The changes group into four areas that will affect a Bun-based service after its next redeploy: how the runtime handles memory when it is idle, how Bun.serve communicates with clients, how large writes reach disk, and how the bundler treats a common re-export pattern.
HTTP/2 on the same port as HTTP/1.1
Bun.serve now supports HTTP/2 on the same port as HTTP/1.1, so a client that uses either protocol connects without a second listener. The Bun team reports 291,512 requests per second on a Hello World GET benchmark against Bun.serve, compared to 55,619 for node:http2 running inside Bun and 42,733 for node:http2 on Node.js v26. That is a self-reported number on Bun's own harness and needs an independent test before it is used in a capacity plan, but the release is consistent with it: HTTP/2 support is now part of the default server rather than a separate package.
Idle memory drops on a Next.js SSR host
JavaScriptCore now deletes JIT-generated code after a long idle. Bun's Next.js SSR test, after a load run followed by an idle cycle, holds 142 MB in v1.4.1, down from 222 MB in v1.4.0 and 1,303 MB in v1.3.14. For a group of servers that have low traffic between busy periods, that is a meaningful drop in the resident set, and it should show up on any Bun host running a Node.js framework through the compatibility layer.
Streaming writes and JIT-inlined buffers
Bun.write() now streams a Response body to disk instead of buffering it. Writing a 128 MiB download used to add 161 MB to peak RSS; it now adds 13 MB. Buffer read and write methods now inline into JIT-compiled code, so buf.writeFloatLE(1.5, 0) runs in 0.31 ns rather than 2.85 ns, a 9.2x improvement on that operation. AsyncLocalStorage gets its own JIT specialisation and runs about twice as fast on the release's benchmark.
Bundler now handles export * as
The bundler now tree-shakes through the export * as name from pattern. Bun cites two library builds: zod 4.5 goes from 375.3 KB to 77.3 KB, a 79 percent reduction, and effect 3.22 goes from 369.1 KB to 163.6 KB, a 56 percent reduction. Any project using bun build against a dependency that re-exports its public API through a namespace should see a similar drop with no code changes.
The four changes touch different places in the stack, but the pattern is the same: server responsiveness, resident memory, disk write memory, and delivered bytes all improve in the same release. A team running Bun in production takes the upgrade and re-measures those four numbers before deciding what else to tune. HTTP/2 clients no longer need a second listener, so a proxy in front of Bun can be simplified. And for anyone publishing a browser bundle through bun build, the zod and effect numbers are the fastest legitimate way to cut a first-load payload this quarter.
Source
This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.
Get AI News in your inbox
New developer tools, model and agent releases, and how teams are actually using them to release software. Short, and only when there is something worth reading.

