← Back
Bun v1.3.9 adds parallel/sequential script running, HTTP/2 upgrades, and 28% faster React markdown rendering
· releasefeatureperformancebugfix · bun.com ↗

Key Features

Parallel and Sequential Script Running

The new bun run --parallel and bun run --sequential commands let you execute multiple package.json scripts concurrently or sequentially with colored, prefixed output. These commands integrate fully with --filter and --workspaces for coordinating builds across monorepo packages:

bun run --parallel build test
bun run --sequential --workspaces build
bun run --parallel --filter '*' build lint test

Unlike --filter, which respects dependency order, these new flags start all scripts immediately without waiting for dependencies—making them ideal for long-lived watch processes. Use --no-exit-on-error to continue even if one script fails.

HTTP/2 Connection Upgrade Support

Bun now correctly handles the net.Server → Http2SecureServer connection upgrade pattern. Libraries like http2-wrapper and crawlee that emit raw TCP connections to HTTP/2 servers will now work properly out of the box.

Testing Improvements

mock() and spyOn() now implement Symbol.dispose, enabling the using keyword for automatic cleanup:

using spy = spyOn(obj, "method").mockReturnValue("mocked");
// automatically restored when leaving scope

Fixes and Optimizations

  • NO_PROXY respected for explicit proxy options: Previously ignored when proxies were explicitly passed; now always checked
  • ARM64 compatibility: Fixed illegal instruction crashes on ARMv8.0 processors (Cortex-A53, Raspberry Pi 4, AWS a1) by correctly targeting ARMv8.0 instead of requiring ARMv8.1+
  • Markdown rendering: 3-15% faster HTML rendering via SIMD-accelerated character scanning
  • React markdown: 28% faster small document rendering through cached HTML tag strings
  • ESM bytecode support: --bytecode now works with --format=esm
  • CPU profiler: Added --cpu-prof-interval flag matching Node.js for configurable sampling intervals