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
520
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 / 森建
フロントエンドの標準仕様をどう追っているか / How I follow the frontend standards specs
petamoriken
3
350
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
430
DOM Observable
petamoriken
1
160
Contributing to Deno is fun!
petamoriken
0
270
Stage 2 Decorators の変遷 / Stage 2 Decorators history
petamoriken
0
6.3k
linaria: Zero-Runtime CSS in JS
petamoriken
2
2.2k
ESNext の議論に参加しよう / Join the ESNext discussion
petamoriken
3
780
Multithreading WebAssembly by Rust
petamoriken
3
1k
WebAssembly で WebP のデコードを試した / Decode WebP with WebAssembly by pure Rust
petamoriken
0
1.1k
Other Decks in Programming
See All in Programming
Vue SFCのtemplateでTypeScriptの型を活用しよう
tsukkee
3
920
tsconfig.jsonの最近の新機能 ファイルパス編
uhyo
7
1.9k
画像でわかる北島直樹
naoki0917
0
110
Програмиране с Rust, ФМИ, 2024
nikolads
0
120
CSC509 Lecture 04
javiergs
PRO
0
170
Micro Frontends for Java Microservices - dev2next 2024
mraible
PRO
0
230
Going Staff - Keynote edition
pragtob
0
360
ActiveRecordの力でDBのメタデータを迅速に解析する
lnit
5
2k
offers_20241022_imakiire.pdf
imakurusu
1
130
2万ページのSSG運用における工夫と注意点 / Vue Fes Japan 2024
chinen
3
850
Jakarta EE as Seen Trough the Lens of the ASF
ivargrimstad
0
860
Universal Linksの実装方法と陥りがちな罠
kaitokudou
1
140
Featured
See All Featured
Designing Experiences People Love
moore
138
23k
Why Our Code Smells
bkeepers
PRO
334
57k
Testing 201, or: Great Expectations
jmmastey
38
7k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
504
140k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
A Modern Web Designer's Workflow
chriscoyier
692
190k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
130k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
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 があるため、便利かもと提案し実装中