Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Deno に Web 標準 API を実装する / Implementing Web stan...
Search
petamoriken / 森建
March 14, 2024
Programming
0
690
Deno に Web 標準 API を実装する / Implementing Web standards API to Deno
OSS Drink Up
https://engineercafe.connpass.com/event/312812/
petamoriken / 森建
March 14, 2024
Tweet
Share
More Decks by petamoriken / 森建
See All by petamoriken / 森建
Denoでフロントエンド開発 2025年春版 / Frontend Development with Deno (Spring 2025)
petamoriken
1
1.4k
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
530
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
240
フロントエンドの標準仕様をどう追っているか / How I follow the frontend standards specs
petamoriken
4
2.1k
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
570
DOM Observable
petamoriken
1
270
Contributing to Deno is fun!
petamoriken
0
380
Stage 2 Decorators の変遷 / Stage 2 Decorators history
petamoriken
0
6.9k
linaria: Zero-Runtime CSS in JS
petamoriken
2
2.3k
Other Decks in Programming
See All in Programming
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
720
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
570
リッチエディターを安全に開発・運用するために
unachang113
1
270
顧客の画像データをテラバイト単位で配信する 画像サーバを WebP にした際に起こった課題と その対応策 ~継続的な取り組みを添えて~
takutakahashi
4
1.4k
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
2
1.2k
中級グラフィックス入門~効率的なメッシュレット描画~
projectasura
3
1.7k
ソフトウェア設計とAI技術の活用
masuda220
PRO
25
6.9k
Jakarta EE Meets AI
ivargrimstad
0
370
SwiftでMCPサーバーを作ろう!
giginet
PRO
2
210
PHPカンファレンス関西2025 基調講演
sugimotokei
5
1k
slogパッケージの深掘り
integral0515
0
160
Gemini CLIの"強み"を知る! Gemini CLIとClaude Codeを比較してみた!
kotahisafuru
2
190
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
231
18k
BBQ
matthewcrist
89
9.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
760
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Unsuck your backbone
ammeep
671
58k
Speed Design
sergeychernyshev
32
1k
The Invisible Side of Design
smashingmag
301
51k
Transcript
Deno に Web 標準 API を実装する OSS Drink Up at Engineer Cafe pixiv Inc. 森内建太
petamoriken 2024.3.14
2 自己紹介 • Web エンジニア • ECMAScript や WHATWG を追うのが好き • Deno へのコミット数ランキング27位らしい petamoriken カスタマーオペレーション
&セーフティ本部 オペレーション開発部
3 目次 • Deno とは • Deno 内部の JavaScript • AbortSignal.any の例 • 今実装しているもの
4 Deno とは • 2018年に Node.js 作者 Ryan Dahl さんによって発表された • JavaScript/TypeScript ランタイム ◦ Web 標準 API、Node.js 互換レイヤーを持つ ◦
ファイル、ネットワークアクセスなどに権限機能がついており安全 ◦ Lint, Format そして LSP 機能などを標準で搭載
5 Deno 内部の JavaScript • Deno API のインターフェースは JavaScript で実装されている ◦ Web 標準 API、Node.js 互換レイヤーなど ◦ ファイルシステム、ネットワークなど外界とのやり取りは Rust •
実行時に都度テキストとして読み込むと時間がかかる 👉 V8 スナップショット機能で JavaScript と ops の初期化処理を高速化
6 JavaScript がかければ コントリビュート可能
7 AbortSignal.any の例 • 中止について扱う AbortSignal に新しい Web 標準 API が追加された
8 AbortSignal.any の例 • まず WebIDL を見ながら引数の処理を書く
9 AbortSignal.any の例 • 仕様の差分を見てどうやら Iterable な WeakSet が必要らしい
10
11 AbortSignal.any の例 • なんやかんや実装して、レビューに対応して ……
12 AbortSignal.any の例 • 承認されて Deno に取り込まれた 🎉
13 AbortSignal.any の例 • わいわい 🎉
14 今実装しているもの • Web 標準 API にアフィン変換を扱う DOMMatrix などの API が存在する 👉 Deno に experimental な WebGPU があるため、便利かもと提案し実装中