Change8

v2.7.12

📦 denoView on GitHub →
4 features🐛 27 fixes🔧 35 symbols

Summary

This release introduces several native extensions for Node compatibility, including file system streams, HTTP parsing, and TLS handling. Numerous bug fixes address stability, memory leaks, and permission checks across core, node, and webgpu modules.

✨ New Features

  • Added fs.SyncWriteStream to node extension.
  • Added llhttp-based HTTPParser with native cppgc binding to node extension.
  • Added native TLSWrap cppgc object (Rust core) to node extension.
  • Implemented native uv_pipe_t with NativePipe and FdTable.

🐛 Bug Fixes

  • Fixed uv_pipe_open handle lifecycle to match libuv.
  • Fixed UvLoopInner freeing on uv_loop_t drop to prevent worker memory leak.
  • Handled WouldBlock in op_print for non-blocking stdio.
  • Used c_char instead of i8 in uv_buf_t base cast.
  • Used per-isolate Private key for napi_wrap/napi_unwrap in napi extension.
  • Added dns.getDefaultResultOrder() API to node extension.
  • Enabled creating net.Socket from file descriptors in node extension.
  • Implemented TCP.open(fd) in node extension.
  • Implemented timeout, killSignal, and pid for child_process spawnSync in node extension.
  • Implemented uv_ref for native TCP handles in node extension.
  • Removed dead legacy TCP server accept path in node extension.
  • Returned real OS file descriptors from node:fs APIs.
  • Rewrote Pipe.open(fd) to use raw fd ops in node extension.
  • Supported numeric FDs in child_process stdio array in node extension.
  • Threw error on cipher update with input >= 2^31-1 bytes in node extension.
  • Accepted ArrayBuffer in GPUQueue.writeBuffer() as data source in webgpu extension.
  • Removed global stdio statics and handled non-blocking stdin.
  • Validated resolved main path stays within package directory.
  • Added timeout to OTEL HTTP exporter to prevent hangs.
  • Checked deny rules against resolved IPs to prevent numeric hostname bypass in permissions.
  • Normalized IPv4-mapped IPv6 addresses in net permission checks.
  • Surfaced CDP protocol errors and fixed race in wait_for_response in repl.
  • Cached canonicalized watch paths and fixed spurious events in runtime.
  • Fixed the publish: false setting in deno.json schema.
  • Fixed linked packages with peer dependencies failing to cache from lockfile.
  • Updated release template workflow URLs to .generated.yml.
  • Used aws-lc-sys EVP API for chacha20-poly1305 for performance improvement.

Affected Symbols

deno v2.7.12 - Change8