Skip to content

Releases: denoland/deno

v2.7.5

11 Mar 12:40
Immutable release. Only release title and notes can be modified.
0238181

Choose a tag to compare

2.7.5 / 2026.03.11

  • feat(coverage): add function coverage to summary and HTML reports (#32507)
  • feat(doc): support npm packages in deno doc (#32435)
  • feat(ext/node): add node_api_create_object_with_properties API (#31443)
  • feat(ext/node): implement KeyObject.toCryptoKey() and
    KeyObject.from(CryptoKey) (#32523)
  • feat(otel): allow feeding permission audit data into OTEL (#32501)
  • feat: --cpu-prof flags for CPU profiles (#31909)
  • fix(console): prevent multi-line object values in console.table (#32604)
  • fix(core): switch to V8 Explicit microtask policy for correct nextTick
    ordering (#32466)
  • fix(ext/http): allow rejecting HTTP upgrades with non-101 status codes
    (#32615)
  • fix(ext/napi): run async work execute callback on a worker thread (#32560)
  • fix(ext/node): add node_api_create_property_key_(latin1/utf8) (#32559)
  • fix(ext/node): add missing http2 header constants (#32611)
  • fix(ext/node): emit DEP0198 warning for SHAKE digests without outputLength
    (#32521)
  • fix(ext/node): emit correct error codes for unsupported PQC key types (#32533)
  • fix(ext/node): fix multiple DiffieHellman crypto bugs (#32531)
  • fix(ext/node): fix multiple node:dgram compatibility issues (#32520)
  • fix(ext/node): handle generateKeyPair 2-arg call and enable PQC tests (#32619)
  • fix(ext/node): implement ECDH.convertKey and fix related ECDH bugs (#32532)
  • fix(ext/node): implement node:v8 heap APIs (#32483)
  • fix(ext/node): implement proper resourceLimits for node:worker_threads
    (#32430)
  • fix(ext/node): improve getCipherInfo and allow repeated Hmac digest() (#32522)
  • fix(ext/node): improve node:dns compat (#32536)
  • fix(ext/node): initialize debuglog testEnabled with safe default (#32598)
  • fix(ext/node): make TTY stdout/stderr indestructible (#32530)
  • fix(ext/node): make tty ReadStream/WriteStream callable without new (#32537)
  • fix(ext/node): multiple readline improvements (#32538)
  • fix(ext/node): napi_set_instance_data on exit (#32509)
  • fix(ext/node): rewrite http2 implementation (#32418)
  • fix(ext/node): run worker_threads eval code in sloppy mode (#32428)
  • fix(ext/node): support des-ede3-cbc cipher and allow Cipheriv/Decipheriv
    without new (#32519)
  • fix(ext/node): use max salt length as default for RSA-PSS signing (#32534)
  • fix(ext/otel): remove panicking unwraps in telemetry code (#32557)
  • fix(ext/websocket): handle non-ASCII bytes in WebSocket response headers
    (#32594)
  • fix(lsp): properly sync root files with tsgo (#32455)
  • fix(lsp): tsgo scope attribution for asset files (#32608)
  • fix(napi): remove unimplemented Node-API symbols from napi_sys (#32593)
  • fix(npm): memoize peer cache hit checks to prevent combinatorial explosion
    (#32609)
  • fix(npm): support npmrc email authorization (#32616)
  • fix: ensure binaries distributed in @deno/... npm packages are exectuable
    (#32581)
  • fix: flush CPU profile and coverage data on Deno.exit() (#32591)
  • fix: normalize capture to boolean in removeEventListener options (#32508)
  • fix: prevent panic on dynamic import with non-string error name (#32498)
  • fix: set process.features.openssl_is_boringssl to true (#32512)
  • fix: support value substitution when loading environment variable files
    (#32495)
  • perf(ext/node): move most fs.cp logic to rust (#32580)
  • perf(lsp): drop jsx import source cache (#32506)
  • perf(npm): improve decompression speed more (#32547)
  • perf(npm): less syscalls in tarball extraction (#32541)
  • perf(npm): remove folder canonicalization in tarball extract (#32540)
  • perf(npm): use libdeflater and preallocate buffer (#32511)

v2.7.4

05 Mar 14:21
Immutable release. Only release title and notes can be modified.
8274bf7

Choose a tag to compare

2.7.4 / 2026.03.05

  • fix(core): uv_compat cleanup and fixes (#32458)
  • fix(deploy): correctly handle version lookup (#32489)
  • fix(ext/node): deep assert compatibility (#32434)
  • fix(ext/node): use sync writes for TTY stdout/stderr WriteStream (#32488)
  • fix(test): restart all tests on env file change (#32461)
  • perf(npm): actually improve npm install -g deno binary startup performance
    (#32467)

v2.7.3

04 Mar 16:21
Immutable release. Only release title and notes can be modified.
e78a7fa

Choose a tag to compare

2.7.3 / 2026.03.04

  • fix(deploy): dont use jsr api for deploy subcommand (#32441)
  • fix(ext/node): handle partial writes to process.stdout/stderr (#32433)
  • fix(ext/node): make UDP socket ops synchronous, implement missing dgram
    methods (#32381)
  • fix(ext/node): support HTTP over Windows named pipes in node:http (#32414)
  • fix(npm): don't panic when peer dep is not in snapshot (#32454)
  • fix(npm): regression where resolution was missing dependencies (#32453)
  • perf(npm): improve npm install deno binary startup performance (#32439)

v2.7.2

03 Mar 16:06
Immutable release. Only release title and notes can be modified.
83e3746

Choose a tag to compare

2.7.2 / 2026.03.03

  • feat: v8 14.6, fix require(esm), libuv compat (#32347)
  • fix(ci): fix ordering of platforms in ecosystem_compat_slack (#32393)
  • fix(cli): load multiple env files in the correct order (#32354)
  • fix(compile): store self extracting dir in hidden dir beside executable
    (#32329)
  • fix(core): store Global ptr for libuv-compat callbacks (#32361)
  • fix(coverage): correct line and branch counts in coverage reports (#32312)
  • fix(coverage): warn instead of erroring when source files are missing (#32398)
  • fix(ext/console): support iterators in console.table (#32379)
  • fix(ext/crypto): fix P-521 EC key export for all formats (#32412)
  • fix(ext/crypto): handle wrong algorithm in subtle.importKey without panicking
    (#32410)
  • fix(ext/node): CBC decipher setAutoPadding(false) incorrectly strips bytes
    (#32403)
  • fix(ext/node): gracefully exit on invalid NODE_CHANNEL_FD instead of panicking
    (#32421)
  • fix(ext/node): handle emoji width correctly in readline (#32383)
  • fix(ext/node): implement KeyObject.equals, fix createCipheriv with
    KeyObject/null IV (#32409)
  • fix(ext/node): implement missing X509Certificate methods (#32270)
  • fix(ext/node): make execPath named export a real string (#32396)
  • fix(ext/node): make setAutoPadding(false) a no-op for GCM ciphers (#32290)
  • fix(ext/node): make fsPromises.watch() a proper AsyncIterable with close()
    (#32378)
  • fix(ext/node): provide CJS globals in worker_threads eval mode (#32266)
  • fix(ext/node): rename conflict callback field typo (#32306)
  • fix(ext/node): return first created path from recursive "node:fs" mkdir call
    (#32300)
  • fix(ext/node): support DER-encoded keys in publicEncrypt/privateDecrypt
    (#32291)
  • fix(ext/node): support Ed25519, X25519, and P-521 keys in
    X509Certificate.publicKey (#32267)
  • fix(ext/node): support RSA PSS padding option in crypto sign/verify (#32269)
  • fix(ext/node): support SEC1 EC private key import/export in node:crypto
    (#32401)
  • fix(ext/node): support process.stdout resize events (#32343)
  • fix(ext/node): use internal compileFunction binding in CJS wrap (#32373)
  • fix(install): do not panic if lockfile incorrectly says package has a bin
    (#32345)
  • fix(install): global install should not warn about using node_modules dir for
    npm specifiers (#32341)
  • fix(jupyter): handle shutdown and interrupt requests per protocol (#32359)
  • fix(node): implement resolveObjectURL for node:buffer (#32382)
  • fix(node): implement process.umask properly (#32385)
  • fix(node): preserve AsyncLocalStorage context in stream.finished callback
    (#32389)
  • fix(node): support ECDSA with secp256k1 in node:crypto (#32390)
  • fix(node/buffer): fix base64 decoding for strings with hyphens (#32298)
  • fix(node/crypto): handle empty input in decipher final with auto_pad=false
    (#31958)
  • fix(node/vm): support vm.constants.DONT_CONTEXTIFY in createContext (#32337)
  • fix(npm): NPM_CONFIG_REGISTRY correctly overrides .npmrc (#32394)
  • fix(npm): peerDependency resolution leading to multiple versions being
    installed + hanging (#32358)
  • fix(test): dedupe discovered workspace test modules (#32380)
  • fix: fix some stack frame dimming, and make the console log more aligned with
    cli formatting (#32399)
  • fix: process level environment variables should take precedence over env files
    (#32407)
  • fix: validate cron schedule when using cron socket (#32406)
  • fix:(ext/node): escape simple quotes in node:child_process (#32336)
  • perf(install): improve parallelism of fetches during npm resolution (#32416)
  • perf(install): move HTTP decompression for registry requests off the async
    event loop (#32400)
  • perf(install): request abbreviated packuments from npm registry (#32364)
  • perf(install): split tarball extraction into decompress + write, limit write
    concurrency (#32408)
  • perf(install): use aws-lc-rs for tarball integrity hashing (#32365)

v2.7.1

25 Feb 17:04
Immutable release. Only release title and notes can be modified.
1df618d

Choose a tag to compare

2.7.1 / 2026.02.25

This is a maintenance release to fix wrong output of deno --version in v2.7.0.

v2.7.0

25 Feb 10:39
Immutable release. Only release title and notes can be modified.
fb4db33

Choose a tag to compare

2.7.0 / 2026.02.25

Read more: http://deno.com/blog/v2.7

  • feat(audit): add --ignore flag to filter advisories by CVE ID (#32221)
  • feat(check): add --check-js flag (#32235)
  • feat(cli): add --save-exact/--exact flag to deno add and install
    (#31977)
  • feat(cli): add deno create command (#32225)
  • feat(compile): add --self-extracting flag (#32227)
  • feat(config): support include and exclude in deploy config (#32254)
  • feat(ext/bundle): Add --keep-names flag (#32285)
  • feat(ext/web): add brotli support to CompressionStream and
    DecompressionStream (#32028)
  • feat(fmt): add --fail-fast flag to deno fmt --check (#31438)
  • feat(fs): add tryLock(exclusive?: boolean): Promise to FsFile
    (#31848)
  • feat(install): support --node-modules-dir for -g and use a manual
    node_modules dir for installing npm: specifiers (#32302)
  • feat(task): turn off failglob by default (#32223)
  • feat(unstable): add Deno.spawn(), Deno.spawnAndWait{Sync}() (#32238)
  • feat(upgrade): cache downloaded binaries (#32187)
  • feat: deno create jsr:<package> and deno init --jsr <package> (#32229)
  • feat: add navigator.platform (#30795)
  • feat: npm overrides (#32073)
  • feat: stabilize Temporal API (#31928)
  • fix(audit): gracefully handle malformed response (#32234)
  • fix(audit): properly handle npm registries in subpaths (#32164)
  • fix(bundle): let esbuild handle data urls (#32213)
  • fix(ci): use noble apt repo for LLVM 21 packages (#32241)
  • fix(ext/node): createServer().listen().address() returns port 0 (#32248)
  • fix(ext/node): util.parseEnv and process.loadEnvFile compatibility
    (#32183)
  • fix(ext/node): add host_arch to process.config.variables (#32265)
  • fix(ext/node): add openAsBlob export to node:fs (#32261)
  • fix(ext/node): add missing process.constrainedMemory() API (#32209)
  • fix(ext/node): enable test-stdio-closed tests (#32237)
  • fix(ext/node): enable test-zlib-invalid-input-memory and test-zlib-un…
    (#32284)
  • fix(ext/node): handle shell redirections in child_process exec (#32087)
  • fix(ext/node): implement timeout and killSignal for spawn() (#32283)
  • fix(ext/node): improve process event handling and add missing APIs (#32200)
  • fix(ext/node): preserve streaming body on stale keepalive retry (#32215)
  • fix(ext/node): remove fs.promises.fstat, not a public Node.js API (#32289)
  • fix(ext/node): support URL in child_process.fork modulePath (#32268)
  • fix(ext/node): support ipv6 host in node:http (#32258)
  • fix(install): support --allow-scripts with deno install -g --compile ...
    (#32249)
  • fix(lsp): implement remaining tsgo resolver callbacks (#32303)
  • fix(lsp): qualify diagnostic source and message from tsgo (#32251)
  • fix(lsp): typescript-go basic resolution (#32016)
  • fix(node): preserve AsyncLocalStorage context in unhandledRejection handlers
    (#32264)
  • fix(node/buffer): fix latin1Slice and hexSlice returning wrong results
    (#32277)
  • fix(permissions): allow /proc/pressure/* files with --allow-read (#30780)
  • fix: deno install --force --compile (#32242)
  • fix: detect bound require reexports in cjs analysis (#32163)
  • fix: format wasm stack traces correctly, preserve context in unhandled
    rejection, improve cppgc inheritance perf (#32293)
  • fix: format wasm stack traces per W3C spec (#32246)

v2.6.10

17 Feb 16:05
Immutable release. Only release title and notes can be modified.
8871ade

Choose a tag to compare

2.6.10 / 2026.02.17

  • feat(ext/tls): add SSLKEYLOGFILE support for TLS key logging (#31867)
  • feat(publish): support more license file types (#32133)
  • feat: add deno install --compile (#32046)
  • fix(compile): remove data.is_empty() check (#32125)
  • fix(deploy): bypass minimumDependencyAge (#32136)
  • fix(ext/napi): don't mark accessor properties as read-only in
    napi_define_class (#32105)
  • fix(ext/node): assert.ok compatibility (#32173)
  • fix(ext/node): fs.rmdir compatibility (#32144)
  • fix(ext/node): add parentPath to Dirent from fs.opendir and support Buffer
    paths in lstat (#32178)
  • fix(ext/node): add worker_threads stdin support (#32165)
  • fix(ext/node): export File class from node:buffer module (#32182)
  • fix(ext/node): fix test-worker-process-argv.js test (#32074)
  • fix(ext/node): fix worker exit code propagation in worker_threads (#32124)
  • fix(ext/node): fix worker.terminate() return value and exit code (#32168)
  • fix(ext/node): forward stdout from worker_threads to parent (#32160)
  • fix(ext/node): make worker_threads ref/unref idempotent like Node.js (#32161)
  • fix(ext/node): normalize trailing dot in TLS servername (#32166)
  • fix(ext/node): process.exit() in worker immediately halts execution (#32169)
  • fix(ext/node): support O_RDONLY | O_CREAT in fs.openSync (#32152)
  • fix(ext/node): use primordials in ext/node/polyfills/_fs/_fs_lchown.ts
    (#32195)
  • fix(ext/node): validate execArgv flags in worker_threads instead of rejecting
    all (#32145)
  • fix(ext/web): prevent GC of AbortSignal.any() (#32118)
  • fix(ext/web): recheck state after signaling abort on writable stream (#32129)
  • fix(install): cleanup node_modules folder on install (#32058)
  • fix(lsp): replace lsp-types with tower-lsp-community/ls-types (#32138)
  • fix(node): unconditionally call Module.prototype._compile with the file
    content in loadMaybeCjs (#32131)
  • fix(node/ext): make zlib write callback async to match node behavior (#32130)
  • fix(node/http): preserve request body on stale keepalive retry (#32148)
  • fix(test): throw when Deno.test() is called during test execution (#32184)

v2.6.9

10 Feb 17:22
Immutable release. Only release title and notes can be modified.
7a98888

Choose a tag to compare

2.6.9 / 2026.02.10

  • feat(doc): support markdown files (#32024)
  • feat(upgrade): ability to verify zip archive against checksum (#31804)
  • feat(upgrade): add context to error messages for better troubleshooting
    (#32018)
  • feat: Send reject-ack message through cron socket (#32035)
  • fix(audit): make 'Path' property more readable (#32049)
  • fix(cli): pull in tunnel fix for windows (#32033)
  • fix(compile): use a temporary directory with a node_modules folder when
    compiling npm specifiers (#32084)
  • fix(ext/node): Fix .only tests compatibilty (#32043)
  • fix(ext/node): fs.writeFile and FileHandle.writeFile compatibility
    (#32077)
  • fix(ext/node): add threadName to worker_threads module (#32072)
  • fix(ext/node): add worker.cpuUsage([prev]) API (#32050)
  • fix(ext/node): add hasColors() to process.stdout and process.stderr (#31985)
  • fix(ext/node): add stub for ServerResponse.writeEarlyHints (#32029)
  • fix(ext/node): add zstd compression support to node:zlib (#32025)
  • fix(ext/node): emit close on both paired MessagePorts (#32092)
  • fix(ext/node): emit error event for worker with missing main module (#32062)
  • fix(ext/node): emit error event for worker_threads terminal errors (#32052)
  • fix(ext/node): fix 'test-worker-process-{argv,env}.js' tests (#32065)
  • fix(ext/node): fix multiple node:zlib compatibility issues (#32039)
  • fix(ext/node): handle raw fd instead rid in isatty (#31912)
  • fix(ext/node): implement Node worker BroadcastChannel ref/unref (#32036)
  • fix(ext/node): implement Symbol.asyncDispose for node Worker (#32051)
  • fix(ext/node): implement DatabaseSync.setAuthorizer() (#32009)
  • fix(ext/node): make child_process stdio streams Socket instances (#31975)
  • fix(ext/node): propagate worker exit code from process.exit() (#32061)
  • fix(ext/node): read from stdin when spawns node with no args (#32088)
  • fix(ext/node): serialize workerData before resolving worker filename (#32091)
  • fix(ext/node): set exitCode/signalCode correctly for killed child processes
    (#32081)
  • fix(ext/node): unref child_process stdio streams by default (#32071)
  • fix(ext/node): unref stdin on pause to allow process exit (#32086)
  • fix(ext/node): validate execArgv and NODE_OPTIONS in worker_threads (#32066)
  • fix(ext/otel): use correct severity for console.trace (#32068)
  • fix(ext/webgpu): GPUQuene writeBuffer size given in elements of TA (#32031)
  • fix(flags): extra trailing space in zsh directory completions (#32042)
  • fix(node/crypto): randomBytes returns buffer with dedicated ArrayBuffer
    (#32048)
  • fix(repl): handle EOF gracefully in JSON REPL mode (#32108)
  • fix(test): user input clearing test runner output (#32082)
  • fix: deno info npm subpath import (#32056)
  • fix: add raw.esm.sh to default --allow-import list (#32030)
  • fix: flaky cron socket tests (#32023)
  • fix: run on pre-Windows 10 version 1709 (#32002)
  • fix: support DENO_SERVE_ADDRESS not being applied to the first server (#31982)
  • fix: support loading npm: and jsr: specifiers in required ES modules
    (#31974)
  • fix: unstable_cron_socket_serve_reject flakiness caused by control socket
    coordination (#32053)

v2.6.8

02 Feb 18:00
Immutable release. Only release title and notes can be modified.
7ab62a7

Choose a tag to compare

2.6.8 / 2026.02.02

  • feat(npm): support jsr: scheme in package.json (#31938)
  • feat: Windows on ARM builds (#31917)
  • fix(ext/node): enable defensive option on DatabaseSync (#32004)
  • fix(ext/node): error formatting compatibility (#31970)
  • fix(ext/node): implement sqlite' SQLTagStore (#31945)
  • fix(ext/node): use primordials in _fs_fchown.ts (#32007)
  • fix(flags): correct zsh completions for script arg (#31994)
  • fix(install): clean up associated config and lock files during uninstall
    (#31984)
  • fix(types): correct types for Worker events (#31981)
  • fix: Reload the CronHandlerImpl if necessary when the control socket
    receives new envs (#31996)
  • fix: upgrade deno_core to 0.383.0 (#32014)

v2.6.7

29 Jan 14:12
Immutable release. Only release title and notes can be modified.
d155af6

Choose a tag to compare

2.6.7 / 2026.01.29

  • feat(ext/node): implement mock API for node:test module (#31954)
  • feat(node): implement FileHandle.readv() method (#31943)
  • feat(npm): use JSR for @jsr scope (#31925)
  • feat: External Socket-Based Cron Implementation (#31952)
  • feat: V8 14.5 (#31873)
  • feat: add --inspect-publish-uid flag for VSCode debugging (#31927)
  • fix(ext/http): use serve address override only once (#31935)
  • fix(ext/net): remove socket file when dropping unix listener (#31947)
  • fix(ext/node): sqlite's StatementSync compatibility (#31941)
  • fix(ext/node): align assert throws/rejects signatures (#31934)
  • fix(ext/node): fix usage of new V8 string APIs (#31963)
  • fix(ext/node): implement sqlite's missing options (#31919)
  • fix(ext/node): pass test-child-process-bad-stdio node compat test (#31851)
  • fix(ext/node): read NODE_OPTIONS for --require and --inspect-publish-uid
    (#31949)
  • fix(ext/node): retry stale keepAlive connections in http client (#31932)
  • fix(ext/node): support setImmediate promisify.custom (#31920)
  • fix(ext/node): use primordials in _fs_ftruncate.ts (#31944)
  • fix(ext/node): use primordials in ext/node/polyfills/tls.ts (#31816)
  • fix(ext/web): support object in DOMException second argument for Node.js
    compat (#31939)
  • fix(node): throw ERR_INVALID_ARG_TYPE for invalid fs.readFile path (#31918)
  • fix(unstable): lint ast comments from first file showing in others (#31956)
  • fix(x): use local npm package even if npm specifier is used, forward unstable
    flags (#31942)
  • fix: allow reading /dev/tty without requiring --allow-all (#31105)
  • fix: enable edns for Deno.resolveDns (#31951)
  • fix: graceful server shutdown with open, un-upgraded connections (#31959)
  • fix: use locked-tripwire to prevent unlocked cargo installs (#31973)