2025/06/16〜2025/06/22の最新情報

OpenTelemetryサポートの安定化について DenoのOpenTelemetryサポートを安定化するPRが作成されています: feat(otel): Stabilize OpenTelemetry support #29822 今後は--unstable-otelの指定は不要化され、OTEL_DENOなどの指定のみで利用できそうです。 このPRは2.4.0のマイルストーンに含まれており、Deno v2.4でのリリースが検討されているようです。 deno publishでのnpmパッケージの公開について deno publishでnpmパッケージの公開をサポートするため、--npmオプションを追加するPRが作成されています: feat(publish): allow publishing to npm #29823 現状ではまだ実装途中の段階のようですが、今のところdeno runコマンド経由でnpm (npm:npm@11.4.2) を実行することでnpmパッケージを公開できるようにすることが想定されているようです (cli/tools/publish/npm.rs#L15) このPRについては2.4.0のマイルストーンに含まれていないため、リリースは少し先になるかもしれません。 Freshにおけるesbuild_deno_loaderから@deno/esbuild-pluginへの移行について Freshでは長らくesbuild_deno_loaderというesbuildプラグインが使用されていました。Freshにおいてこのesbuild_deno_loaderから先週に紹介した@deno/esbuild-pluginへ移行が行われています: fix(core): move to new esbuild deno plugin #3034 まだリリースは行われていないものの、この変更によって、Deno本体とFreshにおけるモジュール解決の振る舞いの互換性がより改善されそうです。 Hono v4.8.0 Hono v4.8.0がリリースされています。 hono/routeが追加 hono/route (Route Helper)という新しいモジュールが追加されており、Contextオブジェクトを引数に渡すことでクライアントから要求されたパスなどの情報を取得することが可能です。 hono/ssg - プラグインシステムが実装 hono/ssgにおいてプラグインシステムが実装されています。 toSSG()に追加されたpluginsオプションでプラグインを指定可能で、フックを実装することによってページの生成に関する振る舞いのカスタマイズなどができるようです。 各種ミドルウェアの改善 各種ミドルウェアで様々な改善が実施されています: ミドルウェア 変更内容 hono/jwt Authorization以外のヘッダーがサポート (headerNameオプション) hono/cors allowMethodsオプションで関数の指定がサポート hono/jsx/streaming <StreamingContext>が追加 (<script>へのnonce属性の設定がサポート) hono/jwk allow_anonオプションが追加 (trueを指定すると、有効なトークンが見つからない場合でも次のミドルウェアーが実行されます) hono/cache cacheableStatusCodesオプションが追加, キャッシュ対象のステータスコードを指定できます (デフォルトは200のみ) Hono#fireの非推奨化 代わりにhono/service-workerのfire()への移行が推奨されています。...

June 22, 2025

2025/02/03〜2025/02/09の最新情報

Deno v2.2のリリースタイミングと直近の変更について Deno公式のXアカウントで、Deno v2.2のリリースが来週に行われる予定であることが発表されています: https://x.com/deno_land/status/1887943247697428819 直近でDeno v2.2に導入予定と思われる機能がいくつかマージされているため、紹介します。 deno lintのJavaScriptプラグインサポート 昨年の末頃から開発が進められていたdeno lintのJavaScriptプラグインがmainブランチへマージされました。 feat(lint): add JavaScript plugin support #27203 まだリリースはされていませんが、canaryバージョンであれば試すことができます。 先程のDeno公式のXアカウントの投稿にも動画が掲載されていますが、プラグインを利用する際は、Deno.lint.Pluginを実装したオブジェクトをdefault exportしたファイルもしくはJSR/npmパッケージをdeno.jsonのlint.pluginsで指定することで有効化することができます。 { "lint": { "plugins": [ // ローカルプラグイン "./lint-plugin.ts", // jsrで公開されているプラグインも指定できます "jsr:@uki00a/deno-lint-plugin-extra-rules@0.1.0" ] } } lint.pluginsでプラグインを設定しておくと、deno lintの実行時に自動的に対象のプラグインも適用されます: $ deno lint main.js error[deno-lint-plugin-extra-rules/no-env-to-object]: `Deno.env.toObject()` requires full `--allow-env` permission. --> /home/uki00a/ghq/github.com/uki00a/deno-sandbox/main.js:3:13 | 3 | const env = Deno.env.toObject(); | ^^^^^^^^^^^^^^^^^ = hint: Recommended to use `Deno....

February 9, 2025

2024/10/07〜2024/10/13の最新情報

Deno v2がリリース Deno v2が正式にリリースされました。公式ブログとYoutubeでアナウンスが行われています: https://deno.com/blog/v2.0 https://www.youtube.com/watch?v=d35SlRgVxT8 新しい発表について 大きな点として、LTSリリースチャネルが発表されています。Deno v2.1からLTSチャネル向けにリリースから6ヶ月間の間は、重要度の高いバグ修正などがバックポートされ続ける想定のようです。 また、Webサイトだけ先に公開されていたDeno for Enterpriseについても正式に発表されました。 周辺ライブラリでの対応 Oakではすでに対応が行われており、v17.1.0にてすでにDeno v2サポートがリリースされています: Release v17.1.0 Honoについてもまだリリースはされていなさそうですが、早速、Deno v2の対応が入れられています (ci: use Deno v2 #3506) 各種パッケージマネージャーを抽象化してくれるni.zshでも、Deno v2のリリースに合わせて、Denoのサポートが導入されたようです (v1.3.0) deno_stdのリリース deno_stdがリリースされています。 @std/cbor 新規パッケージとして@std/cborが追加されています。CBORの実装が提供されます。 @std/collections@1.0.8 @std/collections@1.0.8がリリースされています。 Iterableのサポート @std/collections@1.0.7に続けて、以下のAPIでもIterableオブジェクトのサポートが追加されています: takeLastWhile (@std/collections/unstable-take-last-while) dropWhile (@std/collections/unstable-drop-while) intersect (@std/collections/unstable-intersect) dropLastWhile (@std/collections/unstable-drop-last-while) @std/async@1.0.6 @std/async@1.0.6がリリースされています。 @std/async/unstable-mux-async-iteratorが追加 @std/async/unstable-mux-async-iteratorではMuxAsyncIteratorが提供されており、振る舞いとしては既存の@std/async/mux-async-iteratorにおける同名APIと同じですが、コンストラクタ引数に複数のAsyncIterableを可変長引数として渡すことができる点が異なります。 @std/streams@1.0.7 @std/streams@1.0.7がリリースされています。 @std/streams/unstable-to-byte-stream toByteStream (@std/streams/unstable-to-byte-stream)が追加されています。ReadableStream<Uint8Array>をreadable byte streamへ変換してくれます。 @std/io@0.225.0 @std/io@0.225.0がリリースされています。 非推奨APIの削除 非推奨化された以下のAPIが削除されています。APIによっては@std/streamsに対応するものがあるため、そちらへの移行が推奨されます。 削除対象 移行先 補足 StringReader Buffer....

October 13, 2024

2024/07/15〜2024/07/21の最新情報

@ts-typesと@ts-self-typesプラグマについて Denoで@ts-typesと@ts-self-typesというプラグマが実装されていたようです。 Document @ts-self-types (denoland/deno-docs#502) @ts-typesについては@deno-typesプラグマと同様に、特定のJavaScriptモジュールに対して型定義を適用したい場合に指定することが想定されているようです。今後は@deno-typesではなく@ts-typesの方の使用が推奨されるようです。 // @ts-types="./add.d.ts" import { add } from "./add.js"; @ts-self-typesについても、JavaScriptで書かれたモジュールに型を適用するための機能のようですが、実質的に/// <reference types="..." />と同様に動作するようです。基本的にJavaScriptモジュールに対して型を適用したい場合を除いて、/// <reference types="..." />の方の使用が推奨されるようです。 // @ts-self-types="./globals.d.ts" feat(unstable): add @ts-types and clean up @deno-types (denoland/deno_graph#444) feat(unstable): add support for @ts-self-types pragma (denoland/deno_graph#445) deno_stdのリリース deno_stdがリリースされています。 @std/async@1.0.0 @std/async@1.0.0がリリースされています。 @std/cli@1.0.0 @std/cli@1.0.0がリリースされています。 @std/text@1.0.0 @std/text@1.0.0がリリースされています。 このリリースに合わせて@std/text/caseが削除されています。代わりに@std/text/caseで提供されていた各APIは@std/text/to-camel-caseや@std/text/to-kebab-caseなどのファイルへ移行されています。 @std/ulid@1.0.0 @std/ulid@1.0.0がリリースされています。 @std/csv@1.0.0-rc.4 @std/csv@1.0.0-rc.4がリリースされています。 ParseErrorが削除されています (今後はSyntaxErrorがthrowされます) @std/yaml@1.0.0-rc.4 @std/yaml@1.0.0-rc.4がリリースされています。 stringify()やparse()で利用されていたYamlErrorが削除されています。今後はstringify()からはTypeError, parse()からはSyntaxErrorがthrowされます。 @std/expect@1.0.0-rc.3 @std/expect@1.0.0-rc.3がリリースされています。 expect.extend()との併用を想定して、expect()に型引数が追加されています。 @std/semver@1.0.0-rc.3 @std/semver@1.0.0-rc.3がリリースされています。 @std/semver/increment: increment()のprereleaseとbuildmetadata引数が削除されています。代わりにoptions引数が追加されており、そこでprereleaseやbuildオプションを指定できます。 @std/dotenv@0.225.0 @std/dotenv@0....

July 21, 2024

2024/05/27〜2024/06/02の最新情報

Deno v1.44 Deno v1.44がリリースされています。 以下に内容をまとめたため、よろしければこちらを参照いただければと思います。 Deno v1.44 deno_stdのリリース deno_stdがリリースされています。 @std/uuid@0.224.3 @std/uuid/v1 generateのbufとoffset引数が非推奨化されています。 また、V1OptionsがGenerateOptionsにリネームされています。 @std/data-structures@0.225.0 BinarySearchNodeがprivate APIに変更されています Hono v4.4.0 Hono v4.4.0がリリースされています。 HonoがJSRに公開されています。 @hono/hono

June 2, 2024

2024/05/13〜2024/05/19の最新情報

Deno v1.43.4 Deno v1.43.4がリリースされました。このリリースはバグ修正やパフォーマンス改善などがメインです。 deno publish expandoプロパティのサポート deno publish(fast check)やdeno docでexpandoプロパティが認識されない問題が修正されています。 --dry-runの改善 deno publish --dry-runの実行時に、以下のケースでエラーが発生するように挙動が改善されています。 バージョン指定がないjsr:specifierが検出された場合 deno.jsonが存在しない場合 Node.js互換性の改善 node:worker_threads メインスレッドとWorkerスレッドでモジュールキャッシュが分離されました。SvelteKitなどのパッケージがこの挙動に依存しているようです。(#23461) node:os homedirの互換性が改善されています。 node:fs EISDIRが発生する状況下でReferenceErrorが発生してしまう問題が修正されています。 Deno API "junction"に関する型定義の追加 Deno.SymlinkOptionsのtypeプロパティの型定義に"junction"が追加されています。 "junction"のサポートは以前に実装されていたものの、型定義が追加されていなかったようです。 ReadableStream ReadableStreamのSymbol.asyncIteratorメソッドが返却する非同期イテレーターに対して.return()の直後に.next()を呼ぶと、.next()が返却したPromiseが.return()が返却したものよりも先に解決される問題が修正されています。 Update ongoing promise in async iterator return() method #22389 その他 DenoがTypeScriptなどのファイルをトランスパイルする際に、トランスパイル後のソースからコメントが削除されてしまう問題が修正されています。 Deno v1.43.5 Deno v1.43.5がリリースされています。 Deno v1.43.4でいくつかのnpmパッケージを使おうとするとエラーが発生していたため、その修正が行われています。(#23862) deno_stdのリリース deno_stdのリリースが行われています。主要な変更点だけ抜粋します。 @std/collections@0.224.2 invertとinvertByが追加されています。オブジェクトのキーと値を入れ替えることができます。 const actual = invert({ "foo": 1, "bar": 2 }); const expected = { "1": "foo", "2": "bar" }; assertEquals(actual, expected); freshのホームページの新デザイン freshのホームページのデザインが更新されています。...

May 19, 2024

2024/02/12〜2024/02/18の最新情報

Deno v1.40.5 Deno v1.40.5がリリースされています。 denort (deno compile向けの軽量バイナリ) deno compile向けの軽量バイナリであるdenortが再導入されています。これにより、deno compileによって生成される実行可能ファイルのサイズがかなり縮小されるようです。 feat: denort binary for deno compile #22205 GitHub Releaseに各プラットフォーム向けのdenortバイナリがアップロードされており、deno compileを実行する際にダウンロードされ、利用されます。 Remove denort optimization #10350 DENO_FUTURE環境変数の導入 DENO_FUTUREという環境変数が導入されています。この環境変数は、将来的なDenoのバージョンで実施予定の破壊的変更をテストしやすくするために導入されたようです。 今のところ、この環境変数を設定するとglobalThis.windowが削除されるようです。 $ DENO_FUTURE=1 deno repl --eval='console.log(globalThis.window)' undefined Add DENO_FUTURE env var for testing breaking changes (#22315) その他 deno lspでjsr:サポートの実装が進んでいるようです (#22382, #22418) CompressionStream/DecompressionStreamで処理を中断すると、リソースリークが発生する問題が修正されています (Aborting a CompressionStream/DecompressionStream leaks a resource #14212) deno.jsonから依存パッケージを削除すると、deno.lockが壊れてしまうことがある問題が修正されています deno_std v0.216.0 deno_std v0.216.0がリリースされています。...

February 18, 2024

2024/02/05〜2024/02/11の最新情報

Deno v1.40.4 Deno v1.40.4がリリースされています。 Deno.FsFile.lock(Sync)/unlock(Sync) Deno.FsFileにlock(Sync)とunlock(Sync)メソッドが追加されています。 挙動については既存のDeno.flockなどと同様です。 ARM64ビルド ARM64向けのビルドがサポートされています。 これに合わせてdeno-arm64も非推奨化されているようです。 https://github.com/denoland/deno/pull/22298 https://github.com/LukeChannings/deno-arm64/commit/d7419ea6472b89f56fc9f3ea5c9d370fbf7794c2 Symbol.metadata Symbol.metadataが追加されています。 CLI DENO_AUTH_TOKENS環境変数でIPアドレスの指定がサポートされています。 v1.40.3でdeno jupyterが動かなくなっていた問題が修正されています。(#22231) deno testコマンドで../がうまく認識されない問題が修正されています。 --allow-sysに指定できる値としてcpus(--allow-sys=cpus)がサポートされていいます。node:osのcpus()などの使用を許可できます。 deno_std v0.215.0 deno_std v0.215.0がリリースされています。 破壊的変更 std/log/levels.ts LogLevels.WARNINGが削除されています。(LogLevels.WARNへの移行が推奨されます) std/path std/path/glob.tsが削除されています。下記への移行が推奨されます。 std/path/is_glob.ts std/path/glob_to_regexp.ts std/path/join_globs.ts std/path/normalize_glob.ts また、std/path/separator.tsも削除されています。(std/path/constants.tsへの移行が推奨されます) std/semver 以下のファイルが削除されています。 削除対象 移行先 std/semver/test_comparator.ts std/semver/test_range.ts std/semver/try_parse_comparator.ts std/semver/try_parse_range.ts std/semver/range_format.ts std/semver/format_range.ts std/semver/sort.ts Array#sort + std/semver/compare.ts 非推奨化 (std/semver) 以下のAPIが非推奨化されています。...

February 11, 2024

2024/01/29〜2024/02/04の最新情報

dax v0.38.0 dax v0.38.0がリリースされています。 サブシェルやリダイレクト、パイプなどのサポートが追加されています。 import { $ } from "https://deno.land/x/dax@0.38.0/mod.ts"; // サブシェル await $`(export VAR=123; echo $VAR) && echo $VAR`; // リダイレクト { const request = $.request( "https://raw.githubusercontent.com/denoland/deno_std/0.214.0/version.ts", ) .showProgress(); await $`cat - < ${request}`; const path = $.path("test.txt"); await $`echo foobar > ${path}`; } // パイプ { await $`cat deno.json | jq .imports`; const imports = await $`cat deno....

February 4, 2024

2023/12/25〜2023/12/31の最新情報

Temporal APIのサポートについて まだマージはされていませんが、Deno本体にTemporal APIのサポートを追加するPRが作成されています。 feat(unstable): add Temporal API support #21738 現時点では、--unstableまたは--unstable-temporalを指定したときのみTemporal APIが有効化される想定のようです。 Danet v2 DenoのWebフレームワークであるDanetのv2がリリースされています。 内部で使用されているフレームワークがHonoへ移行されているようです。また、パフォーマンスについても60%の向上が実現されているようです。 このリリースに合わせてdeno.land/x/danet_swaggerのv2もリリースされており、Swagger UIからscalarへの移行が行われているようです。 https://discord.com/channels/684898665143206084/712010403302866974/1189921808883912775 Comparing 1.8.0…2.0.0 · Savory/Danet Netzo Netzoというプロダクトが公開されているようです。 FreshのメタフレームワークであるNetzo frameworkやNetzo platformというビジネス向けのWebアプリケーションの開発やデプロイなどを容易にしてくれるプラットフォームなどが提供されるようです。 Netzo frameworkについてはOSSとして開発されているようで、以下のリポジトリで公開されているようです。 https://github.com/netzo/netzo https://github.com/uki00a/awesome-fresh/pull/38

December 31, 2023