generated at
jsr
JSRとは?
主にDeno向けに開発されたパッケージレジストリです
JSRnpmレジストリと互換性があり、Deno以外にもNode.jsBunなどの様々なランタイムからパッケージを利用できるのも特徴です
Deno本体にはjsrパッケージ向けのパッケージマネージャーが本体に組み込まれており、 jsr: 形式のURLを記述するとJSRからパッケージがダウンロードされます (Deno v2)
レジストリ(jsr.io)のソースコードはhttps://github.com/jsr-io/jsrで公開されています

DenoにおけるJSRとの連携について
jsr: URL
DenoからJSRのパッケージを import する際は jsr: 形式のURLを指定します
例えば、以下のコードではdeno_std ulid パッケージの v0.219.1 を読み込んでいます (deno_stdJSR @std スコープで公開されています)
typescript
import { ulid } from "jsr:@std/ulid@0.219.1";
JSRに公開されているパッケージについてはjsr.ioから探すことができます

deno publishコマンド
DenoからJSRにパッケージを公開するためのコマンドです
ドライラン( --dry-run )もサポートされています

deno addコマンド
JSRに公開されているパッケージをdeno.json imports (Import maps)に追加してくれるコマンドです (npm installyarn addなどに近いイメージです)
これにより、 jsr: なしで該当のjsrパッケージを読み込めるようになります
例えば、以下はdeno addコマンドによりdaxパッケージを追加する例です
shell
# @david/daxパッケージをdeno.jsonのimportsに書き込む $ deno add @david/dax
typescript
// `jsr:`なしで読み込むことができます import $ from "@david/dax";

deno removeコマンド
指定されたパッケージをdeno.jsonから削除し、deno.lockを更新してくれます
shell
$ deno remove @david/dax

deno lintコマンド
jsrパッケージ向けに no-slow-types などのルールが用意されています (deno.json name / version / exports があれば、自動で有効化されます)

Denoの設定ファイルです
jsrに公開するパッケージのメタデータを定義できます ( name / version / exports )
deno publishの実行時のみdeno.json/deno.jsoncに加えて、jsr.json/jsr.jsoncも探索されます

ワークスペース (Deno workspaces)
deno.jsonでワークスペースを定義することができます
deno_stdfresh (Fresh v2以降)などで活用されています

fast check
jsrパッケージに関する型チェックを高速化するために導入されたDeno独自の仕組み (DenoにおけるTypeScriptの独自拡張について)
deno publishを実行する際などに実行されます

ブラウザーからJSRパッケージを使う
esm.shで実験的にサポートされているようです
javascript
import { toCamelCase } from "https://esm.sh/jsr/@std/text@0.218.2"; console.info(toCamelCase("DENO_DIR")); // => "denoDir"
esm.sh以外にも、後述のjsr-npmと各種バンドラーを併用して使用することも可能だと思います
追記) v136で正式にサポートが入ったようです

Node.js/BunからJSRパッケージを使う
jsr-npmを使うことで、Node.jsBunからJSRで公開されたパッケージを利用できます

関連ツール・ライブラリ
x-to-jsr - deno.land/xパッケージをjsr形式に変換してくれるツール
jsr-npm - Node.jsBunからjsrパッケージを利用するためのツール
jsr-publish-on-tag - Gitタグの作成時にGitHub Actionsからjsrへパッケージを公開するためのツール
Molt - Denoの依存パッケージ管理用ツール (jsrがサポートされています)

パッケージ
※主要なものやクロスランタイムサポート(Node.js/Deno/Bun/Cloudflare Workersなど)が意識されているパッケージについて紹介します
hr
@std - Denoの標準ライブラリです (deno_std)
@fresh - Deno公式のPreactベースのメタフレームワークです (Fresh)
@cross - Deno/Node.js/Bun向けの様々なライブラリが公開されています
@oak/oak - Deno/Node.js/Bun/Cloudflare WorkersなどをサポートするWebフレームワークです (Oak)
@hono/hono - Deno/Node.js/Bun/Cloudflare WorkersなどをサポートするWebフレームワークです (Hono)
@david/dax - DenoNode.jsで動作するzxライクなライブラリです (dax)
@stdext - 非公式のdeno_stdへの拡張です

リンク
How we built JSR - jsrの内部実装などについて
The Deno Standard Library is now available on JSR - Denoのワークスペース機能についてなど
What we got wrong about HTTP imports - HTTPインポートが実装された背景とそのトレードオフ、JSRが開発された背景、Deno v2についてなど
日本語の情報

関連ページ

歴史
v1.37jsrパッケージの解決に関する初期実装がDeno本体に追加
v1.38.3deno publishコマンドが実装
v1.39でワークスペースの実験的な実装が追加 (deno-weekly/articles/2023/11/19)
v1.39.3fast checkが導入
v1.40deno.lockにもサポートが導入
ウェイトリストが公開 (https://jsr.io/waitlist)
v1.40.5deno lspでもサポートの実装が開始
v1.41deno lint no-slow-types ルールが追加, deno publishの実行時に型チェックが実行されるように
jsr-ioというGitHub Organizatoinが公開
jsr-npmx-to-jsrが公開 (2024/02/28)
v1.41.1deno addコマンドが実装 (2024/03/01)
v1.43.0 - ワークスペースの各メンバーがImport mapsに自動で登録されるように (2024/05/02)
Deno v1.46 - JSRパッケージへのパッチ機能が実験的にサポート (2024/08/22)
Freshにおいても使われているようです (tests/fixture_precompile/invalid/deno.json)

各種モジュールなどにおける対応状況
https://jsr.io/@stdで公開されています
v0.214.0あたりから本格的に対応が進んでいた模様 (0.213.0...0.214.0)

v0.18.0で対応が入っている模様 (jsrdeno.land/x両方にpublishされてるっぽい)

v13.0.0時点(JSR公開の2ヶ月前)でdeno.json name / version / exports が書かれており、かなり早い段階からサポートが進められていたようです

v4.4.0JSRパッケージが公開されたようです

v135_1でサポートが導入されたようです (v135...v135_1)
v136で正式にサポートが導入されています

v0.11.0で対応が入っています (fa99ea8)

v0.9.0 jsr: URLのサポートが入っている (#110)

v0.41.0にて対応

fresh v2で公開予定