Change8

v2.3.0

Breaking Changes
📦 denoView on GitHub →
1 breaking14 features🐛 9 fixes🔧 14 symbols

Summary

Deno 2.3.0 introduces TypeScript 5.8 support, native addon support for standalone binaries, and enhanced formatting for embedded languages. Note: users must upgrade to 2.3.1 to fix a versioning metadata error.

⚠️ Breaking Changes

  • Lockfile version now defaults to v5, which may cause compatibility issues with older Deno versions.

Migration Steps

  1. Upgrade to Deno v2.3.1 immediately using 'deno upgrade 2.3.1' due to a versioning error in the v2.3.0 release process.

✨ New Features

  • Upgrade to TypeScript 5.8
  • Added --npm and --jsr flags for deno add/install
  • Support for FFI and Node native addons in deno compile
  • Added deno clean --except <paths> to selectively preserve cache data
  • Support for formatting embedded CSS, HTML, and SQL in deno fmt
  • Added Deno.build.standalone to detect if running as a self-contained executable
  • Added --open flag to deno serve to automatically open the server in a browser
  • Support for linux vsock
  • Added signal option to Deno.connect()
  • Support for erasableSyntaxOnly for type checking
  • Added DENO_EMIT_CACHE_MODE environment variable
  • Basic OpenTelemetry (OTEL) event recording and span context propagators
  • Enable explicit resource management (using/await using) for JavaScript
  • Added deviceStartCapture and deviceStopCapture to unstable WebGPU API

🐛 Bug Fixes

  • Fixed regression where implicit jsxImportSource was not resolving
  • Fixed panic in deno compile when including node_modules directory
  • Fixed integer overflow in createImageBitmap
  • Improved Node.js compatibility for dns.lookup, Writable.toWeb(), and process.cpuUsage()
  • Fixed handling of abort signal in readFile for Node.js compatibility
  • Corrected STATUS_CODES strings in node:http
  • Fixed deepStrictEqual(-0, 0) in node:assert
  • Resolved stack overflow in deno doc for self-exporting namespaces
  • Fixed panic when compiled with --no-terminal flag on Windows

🔧 Affected Symbols

Deno.connectDeno.build.standaloneDeno.serveDeno.addDeno.installGPUDevice.deviceStartCaptureGPUDevice.deviceStopCapturenode:httpnode:testnode:sqlitenode:dnsnode:streamprocess.loadEnvFileBuffer.copyBytesFrom