Deno v2.7.5
Deno v2.7.5がリリースされています。
--cpu-prof
--cpu-prof, --cpu-prof-dir, --cpu-prof-name, --cpu-prof-interval, 及び--cpu-prof-mdオプションが追加されています (#31909)
あわせて公式ドキュメントの追加も実施されています (docs: add CPU profiling section to debugging page (#2962))
--cpu-profオプションを指定すると、CPUプロファイラーが有効化され、プロセス終了時にデフォルトでカレントディレクトリにCPUプロファイルが保存されます (デフォルトで CPU.<timestamp>.<pid>.cpuprofile という名前で保存されます。--cpu-prof-dirオプションで出力先ディレクトリ、--cpu-prof-nameオプションでファイル名をカスタマイズ可能です)
$ deno run --cpu-prof --cpu-prof-name=cli.cpuprofile -R src/cli.ts
$ file cli.cpuprofile
cli.cpuprofile: JSON data
また、--cpu-prof-md オプションを指定すると、プロファイル結果をMarkdown形式で出力してくれます。
$ deno run --cpu-prof-md --cpu-prof-name=cli.cpuprofile -R src/cli.ts
$ cat cli.md
# CPU Profile
| Duration | Samples | Interval | Functions |
| --- | --- | --- | --- |
| 414.49ms | 29 | 1000us | 90 |
**Top 10:** `scanNext` 20.0%, `firstString` 10.0%, `cache` 10.0%, `op_require_real_path` 10.0%, `compileFunction` 10.0%, `normalizeString` 10.0%, `findNodeAtLocation` 10.0%, `onLiteralValue` 10.0%, `lintText` 10.0%
## Hot Functions
| Self% | Self Time | Samples | Function | Location |
| ---: | ---: | ---: | --- | --- |
| 20.0% | 2.00ms | 2 | `scanNext` | impl/parser.js:412 |
... 省略 ...
--cpu-prof-intervalオプションはサンプリング間隔を調整したい場合に利用できます (デフォルト値は 1000 です)
OpenTelemetry
DENO_AUDIT_PERMISSIONS環境変数にotelの指定がサポートされています (#32501)
DENO_AUDIT_PERMISSIONS=otelが指定されると、アプリケーションから要求されたパーミッションをローカルファイルへは書き込まず、代わりに Log としてOpenTelemetryバックエンドへ送信されます。
deno coverage
deno coverageコマンドで関数のカバレッジがサポートされています (#32507)
deno coverageが表示するテーブルにFunction %列が追加されています:
| File | Branch % | Function % | Line % |
| -------------- | -------- | ---------- | ------ |
| permissions.ts | 94.3 | 100.0 | 97.0 |
| All files | 94.3 | 100.0 | 97.0 |
また、HTMLレポートにも同様の出力が追加されています。
deno doc npm:<package>
deno docコマンドでnpmパッケージ (npm:<package>) がサポートされています (#32435)
該当パッケージが提供する型定義などを元にドキュメントを表示してくれるようです:
$ deno doc npm:lines-and-columns
Defined in file:///path/to/npm/registry.npmjs.org/lines-and-columns/2.0.4/build/index.d.ts:5:1
class LinesAndColumns
constructor(string: string)
locationForIndex(index: number): SourceLocation | null
indexForLocation(location: SourceLocation): number | null
Defined in file:///path/to/npm/registry.npmjs.org/lines-and-columns/2.0.4/build/index.d.ts:1:1
interface SourceLocation
line: number
column: number
--env
.envにおいて環境変数の置き換えがサポートされています (#32495)
例えば、以下のような.envがあったとします:
KEY=foo
KEY2=${KEY}_bar
この.envを--envによって読み込んだ場合、以下のように出力されます:
console.info(Deno.env.get("KEY")); // => foo
console.info(Deno.env.get("KEY2")); // => foo_bar
Node.js 互換性の改善
node:fs
cp()の内部実装の多くがRustで書き直され、パフォーマンスと互換性が改善されています (#32580)
Linux環境においては3倍近くまでパフォーマンスが改善されるケースもあるようです。
node:http2
denoland/libnghttp2をベースにnode:http2が再実装されています (#32418)
この変更により、Node.jsにおけるnode:http2の134個のテストスイートのうち130個がパスされるまで互換性が改善されているようです。
node:crypto
下記 API が実装されています:
ECDH.convertKey()(#32532)KeyObject#toCryptoKey()及びKeyObject.from()(#32523)- この改善に合わせて
SubtleCrypto#exportKey()及びSubtleCrypto#importKey()でChaCha20-Poly1305がサポートされています
- この改善に合わせて
createCipheriv()/createDecipheriv()でのdes-ede3-cbcのサポート (#32519)getCipherInfo()-nid及びblockSizeプロパティーが返却されるように改善 (#32522)
node:dns
下記の改善が実施されています (#32536)
setDefaultResultOrder()でipv6firstがサポートされていますlookup()のorderオプションがサポートされています- カスタムサーバーが未設定の場合、
Resolver#getServers()が/etc/resolv.confを参照するように改善されています
node:process
nextTick()で登録したコールバックがNode.jsと同様のタイミングで実行されるように改善されています (#32466)
元々、nextTick()で登録したコールバックがPromiseの.then()で登録したコールバックよりも後に実行されてしまう問題があったようです。
node:readline
下記キーバインディングが実装されています (#32538)
- Ctrl+- (Undo)
- Ctrl+^ (Redo)
- Ctrl+Y (Yank)
- Meta+Y
node:worker_threads
resourceLimitsが実装されています (#32430)
node:v8
下記APIが実装されています (#32483)
getHeapStatistics()getHeapCodeStatistics()getHeapSnapshot()writeHeapSnapshot()(利用にはwriteパーミッションが必要です)
node:dgram
Socket#[Symbol.asyncDispose]() 及び createSocket()のipv6Onlyオプションが実装されています (#32520)
Node-API
下記APIが実装されています:
node_api_create_property_key_latin1()及びnode_api_create_property_key_utf8()(#32559)node_api_create_object_with_properties()(#31443)
.npmrc
emailによる認証がサポートされています (#32616)
peerDependencies
peerDependenciesによって相互に依存しあったnpmパッケージが複数存在している場合、インストールがハングしてしまうことがある問題への修正が実施されています (#32609)
Web API
removeEventListener()
removeEventListener()に空オプションが指定された際に、うまくリスナーが削除出来ない問題が修正されています (#32508)
MikroORM 7
MikroORM v7.0.0がリリースされています。
- https://mikro-orm.io/blog/mikro-orm-7-released
- https://github.com/mikro-orm/mikro-orm/blob/817e9d2dcb2ebe25c6a4d235870c1b66f94990a3/docs/blog/2026-03-11-mikro-orm-7-released.md
Denoに関連する変更として、Node.jsの組み込みモジュールなどへの依存の削減により、Denoなどのランタイムへのサポートが強化されています。
MikroORMのCIにおいてDeno+node:sqlite及びDeno+mongodbの組み合わせでテストを実行する仕組みが導入されています:
- feat(sqlite): simplify using other sqlite libraries like
node:sqlite(#7204) - fix(mongo): fix support for deno by handling
TypedArraywhen cloning #7258
また、JSRへのパッケージの公開も実施されています (@mikro-orm)