Changelog

oven-sh/bun · · 38 commits

Bun fixes worker, HTTP, install, and TLS bugs

A strong maintenance day: several user-facing correctness fixes landed across workers, serve, install, networking, and URL handling.

Worker stdout/stderr now flush correctly on sync exit (dylan-conway18391f6)

Bun now preserves buffered process.stdout/process.stderr output when a worker exits synchronously, matching Node behavior for process.exit(), uncaught exceptions, and unhandled rejections. It also honors exitCode changes made inside 'exit' listeners before the final exit path runs.

Unicode 16 URL/IDNA behavior now comes from bundled ICU (Jarred-Sumner04148c8)

Bun removes its bespoke Unicode 16 IDNA pre-pass and bumps the bundled ICU data to 78 so the parser itself produces the updated mappings. This reduces maintenance risk and makes new URL(), host/hostname setters, and domainToASCII/Unicode rely on the same underlying tables.

Bun.serve rejects HTTP/1.0 Transfer-Encoding (robobunbdb7382)

The server now rejects Transfer-Encoding on HTTP/1.0 requests instead of accepting chunked framing and decoding the body. That closes a protocol-compliance hole that could enable request-smuggling-style behavior.

sql.unsafe() now supports named parameters in SQLite (robobune83105e)

SQLite unsafe() queries can now bind named parameters from an object, instead of silently returning no rows for that input shape. The public SQL API and docs were updated alongside regression coverage.

Other misc changes

  • Sourcemap parse-failure bookkeeping cleanup and regression coverage (alii508ee60)
  • Postgres request counter bookkeeping refactor (aliic080470)
  • WebSocket terminate fix for dead wss:// peers (Jarred-Sumnerada9163)
  • Mimalloc fork sync and Android TLS crash fix (Jarred-Sumner40546a0)
  • Dependency/hash/install/build/test maintenance and assorted bug fixes across filesystem, resolver, spawn, crypto, TLS, HTTP/2, macOS symbols, Windows handle inheritance, and fake timers (28 commits)