Slide 1

Slide 1 text

Node.js ΍ deno ʹ web compatible ͳ API Λ΄͍ͬ͠ ͯݴͬͨͷ͸զʑϑϩϯτΤ ϯυΤϯδχΞͰ΋͋ΔΘ͚ͩ ͕ɺ ͔ͩΒͱ͍ͬͯͳΜͰ΋ ຊ౰ʹ΄͍͠ͷ͔ɺͱ͍͏ͷ ͸େ͍ʹٞ࿦ͷ༨஍͕͋Δɻ

Slide 2

Slide 2 text

Twitter: @yosuke_furukawa Github: yosuke-furukawa

Slide 3

Slide 3 text

ݩπΠʔτ

Slide 4

Slide 4 text

ݩπΠʔτ /PEFKTWʹBUPC΍CUPB͕HMPCBMʹೖΔɻ Ͱ΋࢖Θͳ͍Ͱ΄͍͠ɻ BUPCCUPBΛ࢖͍͍ͨͳΒ࢖͍ͨ͘ͳ͍ͱࢥ͏·ͰจࣈΤϯίʔυΛਂ͘ಡ ΈਐΊ͍ͯͩ͘͞ɻ

Slide 5

Slide 5 text

ͳΜͰʮ࢖͏ͳͬͯݴͬͯΔ ΋ͷʯΛ৽͍͠ػೳͱͯ͠௥ Ճ͠ͳ͖Ό͍͚ͳ͍Μɾɾɾʁ

Slide 6

Slide 6 text

atob / btoa • atob / btoa ͸ binary ͱ ASCII ม׵͞Εͨ base64 ͱͷ૬ޓม׵Λߦ͏ศརAPI • Web API ͱͯ͠༧Ίఆٛ͞Ε͍ͯΔ • ͨͩ͠ɺɺɺ

Slide 7

Slide 7 text

atob / btoa • atob ͱ btoa ͸ Unicode ʹ͸ରԠ͍ͯ͠ͳ ͍ɺ͋͘·Ͱ ASCII ݍͰ͔͠࢖͑ͳ͍΋ͷ

Slide 8

Slide 8 text

atob / btoa > atob(btoa("͜Μʹͪ͸")) Uncaught: DOMException [InvalidCharacterError]: Invalid character > decodeURIComponent(atob(btoa(encodeURIComponent("͜Μʹͪ͸"))))
 
 '͜Μʹͪ͸' // ͜ͷΑ͏ʹ decode / encode ͯ͠ ASCII Ͱ΋ΤϯίʔυͰ͖ΔΑ͏ʹ͔ͯ͠Β΍ Δඞཁ͕͋Δɻɻɻɻ

Slide 9

Slide 9 text

͜Μͳ͜ͱ͠ͳͯ͘΋

Slide 10

Slide 10 text

Node.js ʹ͸΋ͱ΋ͱ buffer ͕ ͋Δ const str = "͜Μʹͪ͸"; const base64 = Buffer.from(str, "utf-8").toString('base64'); console.log(Buffer.from(base64, "base64").toString('utf-8')); // ͜Μʹͪ͸

Slide 11

Slide 11 text

ຊ౰ʹ࢖͍͍ͨͰ͔͢ʁ

Slide 12

Slide 12 text

ਖ਼௚จࣈίʔυମܥΛؾʹ͠ ͳ͖Ό͍͚ͳ͍ͷ͸ӳޠݍͰ ΋Ұॹʢֆจࣈͱ͔͋Δ͠ʣ

Slide 13

Slide 13 text

ຊདྷཉ͍͠෺: - fetch - http/3 - etc

Slide 14

Slide 14 text

͜Ε͔Β͸ Node.js ΍ deno ʹ web compat ͕ཉ͍͔͠Β ͱݴͬͯԿͰ΋ೖΕ͍͍ͯͷ ͔Λٞ࿦͠Α͏ɻ