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
680
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
510
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
230
フロントエンドの標準仕様をどう追っているか / How I follow the frontend standards specs
petamoriken
4
2k
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
540
DOM Observable
petamoriken
1
260
Contributing to Deno is fun!
petamoriken
0
360
Stage 2 Decorators の変遷 / Stage 2 Decorators history
petamoriken
0
6.8k
linaria: Zero-Runtime CSS in JS
petamoriken
2
2.3k
Other Decks in Programming
See All in Programming
"使いづらい" をリバースエンジニアリングする UI の読み解き方
rebase_engineering
0
130
実はすごいスピードで進化しているCSS
hayato_yokoyama
0
100
TypeScriptのmoduleオプションを改めて整理する
bicstone
4
460
セキュリティマネジャー廃止とクラウドネイティブ型サンドボックス活用
kazumura
1
140
漸進。
ssssota
0
1.5k
CSC307 Lecture 17
javiergs
PRO
0
100
Use Perl as Better Shell Script
karupanerura
0
680
単体テストの始め方/作り方
toms74209200
0
350
GoのWebAssembly活用パターン紹介
syumai
2
860
型付け力を強化するための Hoogle のすゝめ / Boosting Your Type Mastery with Hoogle
guvalif
1
250
Javaのルールをねじ曲げろ!禁断の操作とその代償から学ぶメタプログラミング入門 / A Guide to Metaprogramming: Lessons from Forbidden Techniques and Their Price
nrslib
2
1.8k
從零到一:搭建你的第一個 Observability 平台
blueswen
0
300
Featured
See All Featured
Building Applications with DynamoDB
mza
95
6.4k
Bash Introduction
62gerente
614
210k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Agile that works and the tools we love
rasmusluckow
329
21k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Six Lessons from altMBA
skipperchong
28
3.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
The Language of Interfaces
destraynor
158
25k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
14
1.5k
GraphQLとの向き合い方2022年版
quramy
46
14k
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 があるため、便利かもと提案し実装中