generated at
Deno KV
概要
kv.js
// `:memory:`を指定すると、インメモリでデータが管理されます (Deno CLIではSQLiteがバックエンドとして使用されます。) const kv = await Deno.openKv(":memory:"); // エントリの作成 await kv.set(["users", 1], "foo"); // エントリの検索 const result = await kv.get(["users", 1]); assert(result.key.length === 2); assert(result.key[0] === "users"); assert(result.key[1] === 1); assert(result.value == "foo"); assert(result.versionstamp != null);

特徴
Deno (CLI)とDeno Deployで同様のAPIが提供されています
Deno (CLI)ではSQLiteDeno DeployではFoundationDBがバックエンドとして使用されています
データの問い合わせ時に結果整合強整合のいずれかを選べます
JavaScriptの様々なデータ型を柔軟に保存できます
各キーに対して生存期間を設定可能です
Deno Queuesにより、メッセージキューとしての利用が可能です
Deno.KV#watch()によりPub/Sub用途として利用が可能です

セルフホスティング
SQLiteベースのバックエンドやDockerイメージ, CLIの実装などがdenoland/denokvリポジトリで提供されています。

ライブラリ
@deno/kv-utils - Deno公式のユーティリティー (元々は以下の kv-toolbox で提供されていた機能の一部が移植されています)
kv-toolbox - Deno KVのユーティリティライブラリ (作者はOakの開発者であるkitsonkさん)
kv-utils - Deno KVのユーティリティ
deno_kv_oauth - Deno KVをベースにOAuthのアクセストークンやセッションなどの管理を行ってくれるモジュール (Deno公式)
kv_api - Deno KVのデータをREST API経由で管理できるようにしてくれるDenoの公式モジュール。FreshOak(予定)などをサポート
pentagon - PrismaライクなAPIを提供するDeno KVのラッパー
Otama - TypeScriptで定義したスキーマを元により型安全にDeno KVを利用できるようにするためのラッパーライブラリ
kvdex - Deno KVのラッパーでインデックスなどをサポート
thoth - Deno KVをベースに全文検索機能を提供してくれるjsrパッケージ
Fedify - ActivityPub向けのフレームワーク

GUIクライアント
kview - Freshで実装されたDeno KVクライアント (ウェブサイト)
kivi - vscode拡張

使用例
kv-notepad - Deno KVベースのメモアプリ
denoland/chatspace - Real-time, collaborative GPT frontend built with Deno KV

Node.js/Bunサポート
Deno公式でnpmパッケージが公開されています (@deno/kv)

バックエンド
denokv_lmdb - Implementation of an LMDB-backed event store for Deno KV.

記事

関連ページ