Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Deno に Web 標準 API を実装する OSS Drink Up at Engineer Cafe pixiv Inc. 森内建太 petamoriken 2024.3.14
Slide 2
Slide 2 text
2 自己紹介 ● Web エンジニア ● ECMAScript や WHATWG を追うのが好き ● Deno へのコミット数ランキング27位らしい petamoriken カスタマーオペレーション &セーフティ本部 オペレーション開発部
Slide 3
Slide 3 text
3 目次 ● Deno とは ● Deno 内部の JavaScript ● AbortSignal.any の例 ● 今実装しているもの
Slide 4
Slide 4 text
4 Deno とは ● 2018年に Node.js 作者 Ryan Dahl さんによって発表された ● JavaScript/TypeScript ランタイム ○ Web 標準 API、Node.js 互換レイヤーを持つ ○ ファイル、ネットワークアクセスなどに権限機能がついており安全 ○ Lint, Format そして LSP 機能などを標準で搭載
Slide 5
Slide 5 text
5 Deno 内部の JavaScript ● Deno API のインターフェースは JavaScript で実装されている ○ Web 標準 API、Node.js 互換レイヤーなど ○ ファイルシステム、ネットワークなど外界とのやり取りは Rust ● 実行時に都度テキストとして読み込むと時間がかかる 👉 V8 スナップショット機能で JavaScript と ops の初期化処理を高速化
Slide 6
Slide 6 text
6 JavaScript がかければ コントリビュート可能
Slide 7
Slide 7 text
7 AbortSignal.any の例 ● 中止について扱う AbortSignal に新しい Web 標準 API が追加された
Slide 8
Slide 8 text
8 AbortSignal.any の例 ● まず WebIDL を見ながら引数の処理を書く
Slide 9
Slide 9 text
9 AbortSignal.any の例 ● 仕様の差分を見てどうやら Iterable な WeakSet が必要らしい
Slide 10
Slide 10 text
10
Slide 11
Slide 11 text
11 AbortSignal.any の例 ● なんやかんや実装して、レビューに対応して ……
Slide 12
Slide 12 text
12 AbortSignal.any の例 ● 承認されて Deno に取り込まれた 🎉
Slide 13
Slide 13 text
13 AbortSignal.any の例 ● わいわい 🎉
Slide 14
Slide 14 text
14 今実装しているもの ● Web 標準 API にアフィン変換を扱う DOMMatrix などの API が存在する 👉 Deno に experimental な WebGPU があるため、便利かもと提案し実装中