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
110
FlutterKaigi 2025 システム裏側
yumnumm
0
2.1k
Terraform+cloud-initで自宅サーバのLXDをIaCするお話
yumnumm
2
230
FlutterKaigi 2024における開発チームの取り組み と 2025への展望
yumnumm
0
96
Apple Walletでパスを作るお話
yumnumm
0
250
私がやってきたアウトプット集
yumnumm
0
200
俺/私のこだわりデスク大大大自慢LT大会 (LTFes #12)
yumnumm
0
140
仕事以外で作成したプロダクトの自慢大会
yumnumm
0
190
Cloudflare Workers でプリントシール機の画像共有システムを制作したお話 @serverlessF
yumnumm
0
310
Other Decks in Programming
See All in Programming
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
180
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
180
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.8k
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
260
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
220
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
3
780
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
13
6.3k
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
280
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
7k
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
140
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Side Projects
sachag
455
43k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Prompt Engineering for Job Search
mfonobong
0
350
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Evolving SEO for Evolving Search Engines
ryanjones
0
220
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
280
sira's awesome portfolio website redesign presentation
elsirapls
0
280
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/ - ໌Ҏ߱ͷͲ͔͜ͷλΠϛϯάͰఀࢭ͠·͢