Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Dart WebAssemblyを使ったWeb API on Cloudflare Workers
Search
Ryotaro Onoue
April 02, 2025
Programming
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Dart WebAssemblyを使ったWeb API on Cloudflare Workers
Ryotaro Onoue
April 02, 2025
More Decks by Ryotaro Onoue
See All by Ryotaro Onoue
FlutterKaigi 2025 公式アプリ&WebサイトのCDについて
yumnumm
0
150
FlutterKaigi 2025 システム裏側
yumnumm
0
2.2k
Terraform+cloud-initで自宅サーバのLXDをIaCするお話
yumnumm
2
260
FlutterKaigi 2024における開発チームの取り組み と 2025への展望
yumnumm
0
110
Apple Walletでパスを作るお話
yumnumm
0
270
私がやってきたアウトプット集
yumnumm
0
230
俺/私のこだわりデスク大大大自慢LT大会 (LTFes #12)
yumnumm
0
160
仕事以外で作成したプロダクトの自慢大会
yumnumm
0
240
Cloudflare Workers でプリントシール機の画像共有システムを制作したお話 @serverlessF
yumnumm
0
320
Other Decks in Programming
See All in Programming
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
160
自分的「カンファレンスの楽しみ方」
syumai
0
200
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
7.2k
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
スマート反転とウェブアクセシビリティ
camiha
0
210
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
330
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
1k
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
100
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
240
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
550
Webの地図
yosuke_furukawa
PRO
6
4.5k
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
WENDY [Excerpt]
tessaabrams
14
39k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Producing Creativity
orderedlist
PRO
348
41k
BBQ
matthewcrist
89
10k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.9k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
Crafting Experiences
bethany
1
340
Transcript
2025.04.02 Dart WebAssemblyΛͬͨ Web API on Cloudflare Workers Ryotaro Onoue
(͙͙) Flutter Tokyo #6
0. whoami - ඌ্ ྒྷଠ࿕ (͓ͷ͏͑ Γΐ͏ͨΖ͏) - גࣜձࣾ
ΏΊΈ 2023৽ଔ - Flutter Ϧʔυ(ϚΠελʔΤϯδχΞ) - FlutterKaigi - 2023: ొஃ & ελοϑ(WebαΠτνʔϜ) - 2024: ελοϑ (WebαΠτϦʔμʔ & ν έοτγεςϜ) - 2025: ελοϑ (ΠϯϑϥνʔϜϦʔμʔ)
0. whoami - EQMonitor ͱ͍͏ؔ࿈ͷΞϓϦ έʔγϣϯΛݸਓ։ൃ͍ͯ͠·͢ - Flutter -
Φʔϓϯιʔε - https: / / github.com/YumNumm/ EQMonitor - DBSupabase CloudΛ༻த - API(BFF)ͱͯ͠Cloudflare WorkersΛڬΜͰ͍·͢ - (࠷ۙߋ৽ΛαϘ͍ͬͯΔ) - (4݄தʹΞοϓσʔτΛެ։͍ͨ͠)
ࠓͷ͓͠ͳ͕͖ 1.[લ] Cloudflare ͱ Dart Wasmʹ͍ͭͯ 2.σϞϓϩάϥϜͷ֓ཁ + ྲྀΕʹ͍ͭͯ
3.ʮDartΛCloudflare WorkersͰಈ͔͢ʯͷ᠘ 4.[ޙ] ϥΠϒσϞ 5.·ͱΊ
1. Cloudflare ͱ WASMʹ͍ͭͯ > ʮͲ͜Ͱͭͳ͕ΔੈքʯͷͨΊͷΫϥυ
> ʮͲ͜Ͱͭͳ͕ΔੈքʯͷͨΊͷΫϥυ 1. Cloudflareͱ? https: // www.cloudflare.com/ja-jp/what-is-cloudflare/
> ʮͲ͜Ͱͭͳ͕ΔੈքʯͷͨΊͷΫϥυ 1. Cloudflareͱ? - Developer Tools https: //
developers.cloudflare.com/products/
αʔόϨεͷ࣮ߦڥ - Cloudflare Workers 1. Cloudflareͱ? -αʔόϨε!? ཧαʔόͳ͍ͷ!? -
͍͍͑ɺ͋Γ·͢ - Cloudflare͕༗͢ΔɺΤοδ࣮ߦڥͰJavaScriptΛ࣮ߦ - AWSͷLambda@Edge, GCPͷCloud Runͱࣅͨίϯηϓτ - Cloudflareͷ৭ΜͳαʔϏεͱ࿈ܞ -͔ܹ҆͠! - Workers Free: 10ສreq/day(10msͷCPU) - Workers Paid: 1000ສreq/month free + $0.3/100ສreq - 3000ສ msͷCPU free + $0.02/100ສms CPU - > ͜͜Ͱ DartΛಈ͔ͯ͠APIΛ࡞Γ͍ͨ! DartΛಈ͔͍͕ͨ͠Ͳ͏͢Ε . . ?
WebAssembly 1. WASMͱ? - WebAssembly(Wasm) - ݴޠඇґଘ, ϙʔλϒϧ, ҆શ,
ߴͳ ԾϚγϯ༻όΠφϦ࣮ߦܗࣜ - C/C + + , C#, JavaScript, Go, Rust, Dartͷݴޠ͔ΒίϯύΠϧՄೳ - ϓϩάϥϜ͕WasmόΠτίʔυ(Ϟδϡʔϧ)ʹίϯύΠϧ͞Εɺ༷ʑͳΞʔΩςΫνϟͷWasm RuntimeͰ࣮ߦՄೳ - ΠϝʔδతʹJVMɻͨͩɺWasmରԠݴޠ͕ଟ͍, αϯυϘοΫεڥͰ͋ΔͳͲ͕ҟͳΔ - V8ΤϯδϯͰWasmΛಈ͔ͤΔ αʔόͳΒwasmtimeͷϥϯλΠϜ͕͑Δ - Ϣʔεέʔε - Unity, Google EarthͷϦονͳॲཧ͕ඞཁͳWebΞϓϦέʔγϣϯ - ϒϥβ্ͷಈը/Իָฤू - ΫϥεϓϥοτϑΥʔϜΞϓϦέʔγϣϯ
WebAssembly 1. Dart(Flutter) ͱ Wasm - Dart - >
WasmStableαϙʔτࡁΈ - ෦తʹJavaScriptʹґଘ͍ͯ͠ΔͨΊɺඇJSڥͷ WebAssembly RuntimeͰಈ͔ͳ͍ - Ex. wasmer, wasmtime - https: / / github.com/dart-lang/sdk/issues/ 53884
WebAssembly 1. Dart(Flutter) ͱ Wasm - Flutter - >
WasmରԠࡁΈ - Wasm (GC)ඇରԠڥ༻ʹJSʹίϯύΠϧ͞Ε Δ - ͜ΕʹΑΓ Flutter WebͷύϑΥʔϚϯε্͕
WebAssembly 1. WASMͱ? - WebAssembly(Wasm) - ܰྔͰ҆શͳ ԾϚγϯ༻ͷόΠφϦ໋ྩܗࣜ -
C/C + + , C#, JavaScript, Go, Rust, Dartͷݴޠ͔ΒίϯύΠϧՄೳ - Javaͷιʔείʔυ͕JavaόΠτίʔυʹίϯύΠϧ͞Εɺ༷ʑͳΞʔΩςΫνϟͷJVM(Java Virtual Machine: JavaԾϚγϯ)Ͱ࣮ߦͰ͖Δͷͱࣅͨײ͡ - ϓϩάϥϜ͕WasmόΠτίʔυ(Ϟδϡʔϧ)ʹίϯύΠϧ͞Εɺ༷ʑͳΞʔΩςΫνϟͷWasm RuntimeͰ࣮ߦՄೳ - ωΠςΟϒฒΈʹߴ dart compile wasm [file] ͰίϯύΠϧͰ͖Δ
WebAssembly 1. WASMͱ? - WebAssembly(Wasm) - ܰྔͰ҆શͳ ԾϚγϯ༻ͷόΠφϦ໋ྩܗࣜ -
C/C + + , C#, JavaScript, Go, Rust, Dartͷݴޠ͔ΒίϯύΠϧՄೳ - Javaͷιʔείʔυ͕JavaόΠτίʔυʹίϯύΠϧ͞Εɺ༷ʑͳΞʔΩςΫνϟͷJVM(Java Virtual Machine: JavaԾϚγϯ)Ͱ࣮ߦͰ͖Δͷͱࣅͨײ͡ - ϓϩάϥϜ͕WasmόΠτίʔυ(Ϟδϡʔϧ)ʹίϯύΠϧ͞Εɺ༷ʑͳΞʔΩςΫνϟͷWasm RuntimeͰ࣮ߦՄೳ - ωΠςΟϒฒΈʹߴ -h Ͱग़ྗ͞Εͳ͍͕ɺ-OʹΑΔ࠷దԽϨϕϧબΔ -O0: ଟ͘ͷ࠷దԽΛແޮԽ -O1: σϑΥϧτͷ࠷దԽ -O2: O1ΑΓڧ͍࠷దԽ (ͨͩ͠ɺ҆શͳ࠷దԽ: minify) -O3: ҉తͳܕνΣοΫΛলུ (ܕΤϥʔͰ Ϋϥογϡ͢ΔՄೳੑUP) -O4: ΑΓੵۃతͳ࠷దԽ https: / / dart.dev/tools/dart-compile
WebAssembly 1. WASMͱ? - WebAssembly(Wasm) - ܰྔͰ҆શͳ ԾϚγϯ༻ͷόΠφϦ໋ྩܗࣜ -
C/C + + , C#, JavaScript, Go, Rust, Dartͷݴޠ͔ΒίϯύΠϧՄೳ - Javaͷιʔείʔυ͕JavaόΠτίʔυʹίϯύΠϧ͞Εɺ༷ʑͳΞʔΩςΫνϟͷJVM(Java Virtual Machine: JavaԾϚγϯ)Ͱ࣮ߦͰ͖Δͷͱࣅͨײ͡ - ϓϩάϥϜ͕WasmόΠτίʔυ(Ϟδϡʔϧ)ʹίϯύΠϧ͞Εɺ༷ʑͳΞʔΩςΫνϟͷWasm RuntimeͰ࣮ߦՄೳ - ωΠςΟϒฒΈʹߴ DartίʔυΛwasmʹίϯύΠϧ
WebAssembly 1. Dart(Flutter) ͱ Wasm - Flutter - >
WasmରԠࡁΈ - Flutter Web (WASM)Ͱಉ༷ʹWASM͕ੜ͞ΕɺରԠڥͰಡΈࠐ·ΕΔ
2. DartΛCloudflare WorkersͰಈ͔͢ ຊฤ
ͭ͘Δͷ 2. DartΛCloudflare WorkersͰಈ͔͢ - ཤྺΛฦ͢API - GET /earthquake/list
- SupabaseʹΞΫηε͠ʹߦ͖ɺ݁ՌΛฦ͢ - Cloudflare Workers্Ͱಈ͔͢ - Dart WasmΛ͍ɺϝΠϯͷίʔυDartͰॻ͘ - Shelf RouterΛ͏ - త - DartΛΤοδڥͰಈ͔͢ݟΛಘΔ - Dart͔ΒHTTP௨৴Ͱ͖Δ͔ΛௐΔ (=Sub-request) - Dart WasmͰಈ͔͢ࡍͷΦʔόʔϔου(ύϑΥʔϚϯεྼԽ)Λܭଌ͢Δ
ͭ͘Δͷ 2. DartΛCloudflare WorkersͰಈ͔͢ - ཤྺΛฦ͢API - GET /v1/earthquake/list
- SupabaseʹΞΫηε͠ʹߦ͖ɺ݁ՌΛฦ͢ - Cloudflare Workers্Ͱಈ͔͢ - Dart WasmΛ͍ɺϝΠϯͷίʔυDartͰॻ͘ - త - DartΛΤοδڥͰಈ͔͢ݟΛಘΔ - Dart͔ΒHTTP௨৴Ͱ͖Δ͔ΛௐΔ (=Sub-request) - Dart WasmͰಈ͔͢ࡍͷΦʔόʔϔου(ύϑΥʔϚϯεྼԽ)Λܭଌ͢Δ (1) Ϣʔβ͔ΒͷϦΫΤετJavaScriptͷ fetchؔʹ͞ΕΔ
ͭ͘Δͷ 2. DartΛCloudflare WorkersͰಈ͔͢ - ཤྺΛฦ͢API - GET /v1/earthquake/list
- SupabaseʹΞΫηε͠ʹߦ͖ɺ݁ՌΛฦ͢ - Cloudflare Workers্Ͱಈ͔͢ - Dart WasmΛ͍ɺϝΠϯͷίʔυDartͰॻ͘ - త - DartΛΤοδڥͰಈ͔͢ݟΛಘΔ - Dart͔ΒHTTP௨৴Ͱ͖Δ͔ΛௐΔ (=Sub-request) - Dart WasmͰಈ͔͢ࡍͷΦʔόʔϔου(ύϑΥʔϚϯεྼԽ)Λܭଌ͢Δ (2)Dart WasmΛىಈ (import mod from “build/main.wasm”;) (2)ϦΫΤετใΛ __ dart_cf_workersม ʹηοτ
ͭ͘Δͷ 2. DartΛCloudflare WorkersͰಈ͔͢ - ཤྺΛฦ͢API - GET /v1/earthquake/list
- SupabaseʹΞΫηε͠ʹߦ͖ɺ݁ՌΛฦ͢ - Cloudflare Workers্Ͱಈ͔͢ - Dart WasmΛ͍ɺϝΠϯͷίʔυDartͰॻ͘ - త - DartΛΤοδڥͰಈ͔͢ݟΛಘΔ - Dart͔ΒHTTP௨৴Ͱ͖Δ͔ΛௐΔ (=Sub-request) - Dart WasmͰಈ͔͢ࡍͷΦʔόʔϔου(ύϑΥʔϚϯεྼԽ)Λܭଌ͢Δ (3) Dart WasmͷmainؔΛ࣮ߦ
ͭ͘Δͷ 2. DartΛCloudflare WorkersͰಈ͔͢ - ཤྺΛฦ͢API - GET /v1/earthquake/list
- SupabaseʹΞΫηε͠ʹߦ͖ɺ݁ՌΛฦ͢ - Cloudflare Workers্Ͱಈ͔͢ - Dart WasmΛ͍ɺϝΠϯͷίʔυDartͰॻ͘ - త - DartΛΤοδڥͰಈ͔͢ݟΛಘΔ - Dart͔ΒHTTP௨৴Ͱ͖Δ͔ΛௐΔ (=Sub-request) - Dart WasmͰಈ͔͢ࡍͷΦʔόʔϔου(ύϑΥʔϚϯεྼԽ)Λܭଌ͢Δ (4) Shelf RouterͰϦΫΤετΛॲཧͯ͠ ݁ՌΛJS ʹฦ͢ + Ϣʔβʹฦ͢
᠘ - Cloudflare Workers͔ΒଞͷAPIΛୟ࣌͘ʹ͍͔ͭ͘᠘͕͋Γ·͢ 1. package:http/http.dart ͷstableόʔδϣϯ Cloudflare WorkersͷFetch
APIʹରԠ͍ͯ͠ͳ ͍ 2. ʮDartΛCloudflare WorkersͰಈ͔͢ʯ ͷ᠘
᠘ 2. DartΛCloudflare WorkersͰಈ͔͢ - Cloudflare Workers͔ΒଞͷAPIΛୟ࣌͘ʹ͍͔ͭ͘᠘͕͋Γ·͢ 1. package:http/http.dart
ͷstableόʔδϣϯ Cloudflare WorkersͷFetch APIʹରԠ͍ͯ͠ͳ ͍ - window.fetch ؔΛୟ͍͍ͯΔ͕ɺCloudflare WorkersϒϥβͰͳ͍ͷͰ window APIͳ͍
᠘ 2. ʮDartΛCloudflare WorkersͰಈ͔͢ʯ ͷ᠘ - Cloudflare Workers͔ΒଞͷAPIΛୟ࣌͘ʹ͍͔ͭ͘᠘͕͋Γ·͢ 1.
package:http/http.dart ͷstableόʔδϣϯ Cloudflare WorkersͷFetch APIʹରԠ͍ͯ͠ͳ ͍ - https: / / github.com/dart-lang/http/pull/1715 Fix browser clients in workers (2025.02.14)
᠘ 2. DartΛCloudflare WorkersͰಈ͔͢ - Cloudflare Workers͔ΒଞͷAPIΛୟ࣌͘ʹ͍͔ͭ͘᠘͕͋Γ·͢ 1. package:http/http.dart
ͷstableόʔδϣϯ Cloudflare WorkersͷFetch APIʹରԠ͍ͯ͠ͳ ͍ - https: / / github.com/dart-lang/http/pull/1715 Fix browser clients in workers (2025.02.14) άϩʔόϧίϯςΩετͷfetch APIΛୟ͘Α͏ʹͳͬͨ
᠘ - Cloudflare Workers͔ΒଞͷAPIΛୟ࣌͘ʹ͍͔ͭ͘᠘͕͋Γ·͢ 1. package:http/http.dart ͷstableόʔδϣϯ Cloudflare WorkersͷFetch
APIʹରԠ͍ͯ͠ͳ ͍ - https: / / github.com/dart-lang/http/pull/1715 Fix browser clients in workers (2025.02.14) 2. Cloudflare WorkersͰάϩʔόϧίϯςΩετ͔Β I/Oૢ࡞(Ex. Fetch API)Λୟ͚ͳ͍ 2. ʮDartΛCloudflare WorkersͰಈ͔͢ʯ ͷ᠘
᠘ 2. DartΛCloudflare WorkersͰಈ͔͢ - Cloudflare Workers͔ΒଞͷAPIΛୟ࣌͘ʹ͍͔ͭ͘᠘͕͋Γ·͢ 1. package:http/http.dart
ͷstableόʔδϣϯ Cloudflare WorkersͷFetch APIʹରԠ͍ͯ͠ͳ ͍ - https: / / github.com/dart-lang/http/pull/1715 Fix browser clients in workers (2025.02.14) 2. Cloudflare WorkersͰάϩʔόϧίϯςΩετ͔Β I/Oૢ࡞(Ex. Fetch API)Λୟ͚ͳ͍ υΩϡϝϯτʹॻ͍ͯ͋Δɻ ͕ͨͬͯ͠ɺfetch APIΛάϩʔόϧίϯςΩετ͔Βݺͼग़ͤͳ͍ DartͰ͍͏ͳΒɺάϩʔόϧ͔ؔΒݺͼग़͢ͱΤϥʔʹͳΔ https: / / developers.cloudflare.com/workers/runtime-apis/fetch/
᠘ - Cloudflare Workers͔ΒଞͷAPIΛୟ࣌͘ʹ͍͔ͭ͘᠘͕͋Γ·͢ 1. package:http/http.dart ͷstableόʔδϣϯ Cloudflare WorkersͷFetch
APIʹରԠ͍ͯ͠ͳ ͍ - https: / / github.com/dart-lang/http/pull/1715 Fix browser clients in workers (2025.02.14) 2. Cloudflare WorkersͰάϩʔόϧίϯςΩετ͔Β I/Oૢ࡞(Ex. Fetch API)Λୟ͚ͳ͍ - JS Interop(DartͷJS૬ޓӡ༻ػೳ)ͰؤுΔ - Dart Wasmʹ͢ΦϒδΣΫτͷதʹɺϦΫΤετϋϯυϥʔͰfetch APIΛݺͼग़ؔ͢Λ͢ 2. ʮDartΛCloudflare WorkersͰಈ͔͢ʯ ͷ᠘
᠘ 2. DartΛCloudflare WorkersͰಈ͔͢ - Cloudflare Workers͔ΒଞͷAPIΛୟ࣌͘ʹ͍͔ͭ͘᠘͕͋Γ·͢ 1. package:http/http.dart
ͷstableόʔδϣϯ Cloudflare WorkersͷFetch APIʹରԠ͍ͯ͠ͳ ͍ - https: / / github.com/dart-lang/http/pull/1715 Fix browser clients in workers (2025.02.14) 2. Cloudflare WorkersͰάϩʔόϧίϯςΩετ͔Β I/Oૢ࡞(Ex. Fetch API)Λୟ͚ͳ͍ - JS Interop(DartͷJS૬ޓӡ༻ػೳ)ͰؤுΔ - Dart Wasmʹ͢ΦϒδΣΫτͷதʹɺϦΫΤετϋϯυϥʔͰfetch APIΛݺͼग़ؔ͢Λ͢ JS Dart ϦΫΤετϋϯυϥʔͷؔͱͯ͠ݺͼग़ͤΔΑ͏ʹͳͬͨ
᠘ - Cloudflare Workers͔ΒଞͷAPIΛୟ࣌͘ʹ͍͔ͭ͘᠘͕͋Γ·͢ 1. package:http/http.dart ͷstableόʔδϣϯ Cloudflare WorkersͷFetch
APIʹରԠ͍ͯ͠ͳ͍ - https: / / github.com/dart-lang/http/pull/1715 Fix browser clients in workers (2025.02.14) 2. Cloudflare WorkersͰάϩʔόϧίϯςΩετ͔Β I/Oૢ࡞(Ex. Fetch API)Λୟ͚ͳ͍ - ਖ਼֬ʹɺಉ࣌ʹϦΫΤετΛૹΔͱΤϥʔʹͳͬͨ (͓ͦΒ͘ Dart WasmͷΠϯελϯεΛ͍·Θ͠ ͍ͯΔ͔Β) - JS Interop(DartͷJS૬ޓӡ༻ػೳ)ͰؤுΔ - Dart Wasmʹ͢ΦϒδΣΫτͷதʹɺϦΫΤετϋϯυϥʔͰfetch APIΛݺͼग़ؔ͢Λ͢ - > ղܾ! (ͪͳΈʹɺ2ͭͷόάʹؾ͕͍ͭͨͷ ࠓՈΛग़Δ15લ) 2. ʮDartΛCloudflare WorkersͰಈ͔͢ʯ ͷ᠘
ύϑΥʔϚϯε 2. ʮDartΛCloudflare WorkersͰಈ͔͢ʯ ͷ᠘
ύϑΥʔϚϯε 2. ʮDartΛCloudflare WorkersͰಈ͔͢ʯ ͷ᠘ CPU࣌ؒ(1ϦΫΤετ͋ͨΓͷCPUαΠΫϧ࣌ؒ) ͕10ഒఔଟ͍ Cloudflare Workers͍͕҆
େྔϦΫΤετΛࡹ͘ͱͳΔͱؾʹͳΔ eqapi-dart-edge (TypeScript+Dart Wasm API) EQMonitor༻ͷAPI (TypeScript API) ※ ͨͩ͠ɺࠓճͷAPIͱEQMonitor༻APIͰॲཧ͍ͯ͠Δ༰͕ҟͳΔͨΊ ୯७ൺֱͰ͖ͳ͍͜ͱʹҙ
(ࢿྉ࡞Δͷ໘ʹͳͬͨͷͰ) ͪΐͬͱϥΠϒσϞ - JavaScript͔ΒDart WasmΛىಈ - > ϦΫΤετΛॲཧ -
JSInteropͷ - APIΤϯυϙΠϯτΛՃ - ϩʔΧϧ࣮ߦ & σϓϩΠ
Dart Wasm x Cloudflare Workers ·ͱΊ - DartΛWebAssemblyʹίϯύΠϧͰ͖ΔΑ͏ʹͳͬͨ͜ͱͰɺ༷ʑͳϓϥοτϑΥʔϜͰಈ͔ͤΔΑ͏ʹ ͳͬͨ
- DartͷJSInteropͷ͓͔͛Ͱ Dart͔ΒJSͷࢿ࢈Λݺͼग़͢ͷ؆୯ - Cloudflare Workers্Ͱಈ͔͢͜ͱʹΑΓɺDartΛ͍Web APIΛ࡞Ͱ͖ΔΑ͏ʹͳͬͨ - Dartͷطଘͷࢿ࢈Λ༗ޮ׆༻Ͱ͖Δ - ͨͩ͠ɺ dart:io ʹґଘ͢Δίʔυಈ͔ͤͳ͍ - ΞϓϦέʔγϣϯͱͷAPIܕఆٛΛڞ௨ԽͰ͖ΔͨΊ ͪΐͬͱָʹͳΔ - ͱ͍͑ɺ༷ʑͳน͕͋Γ ProductionͰಈ͔͢ʹෆ͕҆Δ - ಛʹɺWebAssemblyΛڬΉ͜ͱʹΑΔ CPU࣌ؒ+Ϩεϙϯε࣌ؒͷ૿Ճ - DartͰॏ͍ॲཧΛ࣮ߦ͢ΔͷͰ͋Ε ૉͷJavaScriptͰ࣮ߦ͢ΔΑΓߴύϑΥʔϚϯεʹͳΔ Մೳੑ͋Δ (Ex. ը૾ॲཧ) - > ٕज़తʹ݁ߏ໘ന͍ͷͰɺͥͻΈͳ͞Μ DartͰAPIΛΜͰ༡ΜͰΈ͍ͯͩ͘͞
FlutterKaigi 2025 એ - FlutterKaigi 2025ͷελοϑͬͯ·͢ - ΠϯϑϥνʔϜ(νέοτγεςϜɾσʔλϕʔεɾAPI)ͷϦʔμʔͬͯ·͢ -
ࠓͷFlutterKaigi 2025Ͱ νέοτγεςϜͷAPIΛ Dart Λ͍ߏங͢Δ༧ఆͰ͢! - ৄ͍͜͠ͱ·ܾͩΊ͍ͯ·ͤΜ͕ɺࠓճհͨ͠ Cloudflare Workers + Dart WasmΛ͏͔Ͱ͢! - 4.26ʹژͰΠϕϯτΓ·͢ - 2024ͷνέοτγεςϜ + 2025ͷలʹ͍͓ͭͯ͠·͢!
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠! - ࢀߟࢿྉ - https: / / github.com/a-skua/cf_workers.dart -
εϥΠυͷURL - ࠓճ࡞ͨ͠αϯϓϧϓϩάϥϜ - GitHub: https: / / github.com/YumNumm/eqapi-dart-edge - API: https: / / eqapi-dart-edge.yumnumm.workers.dev/ - ໌Ҏ߱ͷͲ͔͜ͷλΠϛϯάͰఀࢭ͠·͢