気軽に使おうDenoKV
https://deno.com/kv
https://gyazo.com/074caea5a588b3f28ac8a6fb562c6391
hashrock
Deno Land inc.のProduct Engineer
そろそろ一年
Denoくんの絵を描いてたらDeno社から声かかった
レガシーWebが好き
掲示板
お絵かき掲示板
Webチャット
Web拍手
アクセスカウンター
絵チャ
遊び場は自作するもの
すべてはデータストアから始まる
データ置き場があれば遊び場が作れる
知人とかフォロワーに使ってもらいたい
→ローカルストレージだと面白くならない
個人Web制作におけるデータストア
とりあえずJSON置き場が欲しい
安価なDBの選択肢が限られる
RDBだと$10 / 月くらいが相場
無料でもプロジェクト数制限があったりして使いづらい
Deno KV
DenoとDeno Deployに組み込まれてるKVストア
詳しくは
https://zenn.dev/uki00a/articles/kv-store-introduced-in-deno-v1-32
https://qiita.com/access3151fq/items/ee1cf3e5fc35150dd910
https://gyazo.com/ec0305e49f482a53f8107351865e6262
すぐ使えるよ(Terminal DEMO)
code:kv.sh
deno --unstable
const kv = await Deno.openKv()
kv.set("hoge", {user: "Taro"})
await kv.get("hoge")
kv.set("users", 1, {user: "Taro"})
const it = kv.list({prefix: "users"})
await it.next()
https://gyazo.com/1153e53643f6550ccd8a22ee5527f34f
https://gyazo.com/6905fd121b0c0a625805c3fe81f1a5bb
https://gyazo.com/5f7606465069df26bbbde0cec09d875e
作ったもの1
https://hashrock-kv-notepad.deno.dev/
Repo
DBアクセスコード
コードジェネレータ作った
OAuth周りはtic-tac-toeから丸パクリ
認証周り
ライブラリ化が見込まれている
https://github.com/denoland/saaskit/pull/192
作ったもの2
https://hashrock-kv-sketchbook.deno.dev/
Repo
ArrayBuffer普通に格納できた(バイナリのまま入っているっぽい)
Valueに64KiBまでしか格納できない問題
チャンクに分ける手があるが、とりあえず2色お絵かきツールにすることで回避
タイムラインは別コレクション
https://github.com/hashrock/kv-sketchbook/blob/main/utils/types.ts#L22
ユーザ名やアバターURLは複数のコレクションに重複してデータを持たせた(KVのワークアラウンド)
作ったもの3
https://hashrock-kv-town.deno.dev/
Repo
その他
https://github.com/kitsonk/kv-toolbox
チャンクに分けて大きなValueを保存するライブラリ
画像保存に使えそう
キーをどうするか問題
時系列ソート可能なUUIDが欲しい
https://www.npmjs.com/package/uuidv7
https://qiita.com/kawasima/items/6b0f47a60c9cb5ffb5c4
所感
すぐ使えるJSON置き場最高
APIキーの設定(.envとか環境変数)しなくていいので楽
RDB向けのアプリではセッション格納など部分的に使うのもあり
waitlistに登録してね
https://dash.deno.com/kv
終わり
https://www.youtube.com/live/iHj72BvgoZY?feature=share&t=1882