🐯
toranoana.deno #21 イベントレポート
「JavaScript と TypeScript の“いま”を、Deno という切り口で一気に追いかける」——そんな空気に満ちた toranoana.deno シリーズもついに 21 回目。今回も虎の穴ラボの藤原さんによる軽快な司会進行のもと、Deno 初心者からコアユーザーまで楽しめる 3 本の LT が披露されました。YouTube ライブのチャット欄は終始にぎやかで、質問が飛ぶたびに登壇者がリアルタイムで回答する双方向感が印象的でした。
プログラムと登壇者
時間 | タイトル | スピーカー |
|---|---|---|
19:30 | オープニング & 会社紹介 | 藤原(虎の穴ラボ) |
19:35 | Fresh 2 のミドルウェアを作ってみよう | 奥谷(虎の穴ラボ) |
19:50 | deno‑redis の紹介と JSR パッケージ運用 | uki00a |
20:05 | Deno と JSR で実現する最速 MCP サーバー開発記 | yamanoku |
20:35 | クロージング | 藤原 |
1. Fresh 2 のミドルウェアを作ってみよう
登壇トップバッターは虎の穴ラボの奥谷さん。待望の Fresh 2(アルファ版)の概要を、実際にミドルウェアを書き換えてみた経験とともに紹介しました。
キーとなる変更点
app()API の導入start()から一転、Express ライクなapp.get/app.useスタイルへ。プラグイン方式の廃止1 系で多用されたプラグインが姿を消し、ミドルウェアファイルに一本化。
createDefineで型安全を確保状態を拡張するたびに型が伝搬し、IDE 補完が利く“開発者体験”を実現。
デモハイライト
ログ出力ミドルウェア(パラメータなし)
export const logger = defineMiddleware((_req, _ctx, next) => { console.log("request arrived"); return next(); });
レートリミッタ(ファクトリ形式でパラメータ受け取り)
simpleRateLimit(100)のように呼び出し側で制限値を渡せるデザインが秀逸。
Q&A 抜粋
質問 | 回答 |
|---|---|
Fresh 1 からの移植で一番苦労した部分は? | プラグイン廃止による設定ファイル整理。
に統合した結果、依存順序の把握が大事になった。 |
Tailwind 連携はどうなる? | すでに公式でサポートするミドルウェアが α 版に同梱済み。設定をコピーすれば動く。 |
2. deno‑redis と JSR パッケージ運用
続いて登壇した uki00a さんは、6 年にわたりメンテナンスしている deno‑redis の“裏側”を公開。Deno V2 移行で直面した破壊的変更への対応策が中心でした。
破壊的変更と段階的移行
V1 の
Reader/WriterAPI → V2 の Web Streams へ全面移行。プロトコルレイヤ を抽象化し、V1 用・V2 用を並行実装。
同一テストを両実装に流すことで整合性を担保。
パフォーマンスチューニング
ベンチマーク基盤を benchee から Benny にスイッチ。 Node と Deno の両方で同一コードを測定でき“横並び比較”が容易に。
BYOBモードでバッファコピーを削減し、旧実装比で大幅高速化。
JSR 運用 Tips
deno lint+ 独自プラグイン でデバッグ用console.logを撲滅。GitHub Actions のキャッシュ を有効化し CI 時間を短縮。
スコア 100% を目指すと自然に README と型定義が磨かれる。
Q&A 抜粋
質問 | 回答 |
|---|---|
最も苦労した移行タスクは? |
相当を Streams で置き換える際のメモリ効率。 |
OTEL 対応の予定は? | Deno 本体が計測 API を広げつつあり、次期メジャーで組み込みを検討中。 |
3. Deno と JSR で実現する最速 MCP サーバー開発記
トリを務めた yamanoku さんは、話題の Model Context Protocol (MCP) を Deno で実装した体験談を披露。生成 AI と Web 技術をつなぐ“ハブ”をいかに安全かつ高速にデプロイするかがテーマでした。
Deno を選んだ理由
パーミッション制御 による安全なローカルサーバー実行。
TypeScript ファーストで CLI もサーバーも同一コードベース。
JSR の公開フローが軽く、NPM 互換で配布もしやすい。
作った MCP サーバー例
サーバー | 目的 |
|---|---|
Baseline MCP | Web API のブラウザ互換性情報を LLM に提供 |
Connpass MCP | 登壇者/イベント情報の取り込み |
Alt‑Text MCP | 画像の代替テキストを AI で自動生成 |
さらなる要望
「Deno Deploy でリモート MCP サーバーをホスティングできれば最高!」 ストリーマブル HTTP を想定した提案に、視聴していた Deno スタッフからも前向きなリアクションがチャットに流れました。
Q&A 抜粋
質問 | 回答 |
|---|---|
Node の Permission API とは何が違う? | Deno は I/O・ネットワーク・環境変数を細粒度で許可でき、MCP のような“プラグインモデル”と相性が良い。 |
生成 AI との組み合わせで感じた可能性は? | ブラウザ操作の自動化やアクセシビリティ改善など、LLM に“行動”を与える基盤として有望。 |
クロージング
藤原さんからは今後のイベント・採用情報が案内され、アンケート回答のお願いとともに配信は終了。チャット欄には「Fresh 2 触ってみる」「JSR スコア埋めるぞ」など前向きなコメントが最後まで続きました。
ふり返りと所感 — “学ぶ→作る→共有する”の好循環
3 本の LT すべてに共通していたのは、 「公式アップデートを追いかけながら、自分のプロダクトで即検証し、成果をパッケージ化して公開する」 というサイクルでした。
Fresh 2 のアルファ版をいち早く触り、型安全を保ったまま移植する姿勢。
ライブラリの破壊的変更を恐れず、抽象化とベンチマークで着実に進める手法。
生成 AI の新潮流に乗り、Deno と JSR を使って“誰でも扱える形”で提供する情熱。
Deno 界隈はまだ発展途上と言われますが、今回の発表を通じて「最新を追うほど開発者体験が向上し、共有すればするほどエコシステムが強くなる」という前向きなエネルギーを強く感じました。
興味を持ったテーマがあれば、次の #22 ではぜひ発表側にまわってみてください。アウトプットの連鎖が、Deno をさらに面白くしていくはずです。
Yardでは、AI・テック領域に特化したスポットコンサル サービスを提供しています。
興味がある方は、初回の無料スポットコンサルをお申し込みください。
また、資料請求やお問い合わせもお待ちしております。テック領域の知見を獲得し、事業成長を一緒に実現していきましょう。
Read next
Loading recommendations...
