Changelog

oven-sh/bun · · 5 commits

HTTP/2 settings and SQL prep fixes land

Node-compatible HTTP/2 settings handling and atomic Postgres prepared-statement execution headline a day of important runtime fixes.

HTTP/2 settings now match Node more closely (robobun8fb62c0)

Bun’s HTTP/2 settings packing/unpacking was rewritten to support enableConnectProtocol, honor customSettings, and return the expected defaults and error shapes. This should improve Node compatibility for apps that introspect or update session settings, especially around getPackedSettings() and getUnpackedSettings().

Unnamed Postgres prepared statements are now sent atomically (robobun10bdb48)

Parse, Bind, Execute, Flush, and Sync are now batched together for unnamed prepared statements so connection poolers like PgBouncer in transaction mode can’t split them across backend connections. That fixes a correctness bug where queries could hit the wrong prepared statement when using pooled Postgres connections.

macOS UDP sockets and reusePort are fixed (robobunf4dc498)

The UDP socket path now enables SO_REUSEPORT on macOS where supported, propagates the real bind error, and avoids leaking the socket fd on failure. The regression test covers the implicit-bind path so dgram behavior should be more reliable on Apple platforms.

Other misc changes

  • Build flags updated to pass macOS deployment target/sysroot and explicit LTO optimization level at link time (dylan-conway685b934)
  • React/Next/next-auth fixture and benchmark dependency upgrades for test coverage (alii1f134a1)