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
Dart WebAssemblyを使ったWeb API on Cloudflare Workers
Search
Ryotaro Onoue
April 02, 2025
Programming
130
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
120
FlutterKaigi 2025 システム裏側
yumnumm
0
2.1k
Terraform+cloud-initで自宅サーバのLXDをIaCするお話
yumnumm
2
240
FlutterKaigi 2024における開発チームの取り組み と 2025への展望
yumnumm
0
100
Apple Walletでパスを作るお話
yumnumm
0
260
私がやってきたアウトプット集
yumnumm
0
210
俺/私のこだわりデスク大大大自慢LT大会 (LTFes #12)
yumnumm
0
150
仕事以外で作成したプロダクトの自慢大会
yumnumm
0
200
Cloudflare Workers でプリントシール機の画像共有システムを制作したお話 @serverlessF
yumnumm
0
310
Other Decks in Programming
See All in Programming
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
1B+ /day規模のログを管理する技術
broadleaf
0
140
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
320
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
140
symfony/aiとlaravel/boost
77web
0
130
Laravelで学ぶ Webアプリケーションチューニング入門/web_application_tuning_101
hanhan1978
4
920
フィードバックで育てるAI開発
kotaminato
1
120
Performance Engineering for Everyone
elenatanasoiu
0
270
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
550
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.5k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.9k
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
110
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
240
RailsConf 2023
tenderlove
30
1.5k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
660
4 Signs Your Business is Dying
shpigford
187
22k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
370
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
The Curse of the Amulet
leimatthew05
2
13k
From π to Pie charts
rasagy
0
240
Practical Orchestrator
shlominoach
191
11k
My Coaching Mixtape
mlcsv
0
170
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/ - ໌Ҏ߱ͷͲ͔͜ͷλΠϛϯάͰఀࢭ͠·͢