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
140
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
220
俺/私のこだわりデスク大大大自慢LT大会 (LTFes #12)
yumnumm
0
150
仕事以外で作成したプロダクトの自慢大会
yumnumm
0
230
Cloudflare Workers でプリントシール機の画像共有システムを制作したお話 @serverlessF
yumnumm
0
320
Other Decks in Programming
See All in Programming
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
130
リアルな遅延を測る仕様
kota_yata
1
130
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
240
仕様駆動開発の消費期限
watany
20
9.1k
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
3.8k
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
5
1.8k
T3DD26: From RAGs to Riches
martinhelmich
0
120
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
670
AIの中の人になってみる
htkym
0
140
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
370
Dockerfile CMD for Node.js
grazie1999
0
140
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
240
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
220
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
220
Raft: Consensus for Rubyists
vanstee
141
7.7k
The Invisible Side of Design
smashingmag
301
52k
Speed Design
sergeychernyshev
33
2k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
260
Fireside Chat
paigeccino
42
4k
Navigating Weather and Climate Data
rabernat
0
490
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
390
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Balancing Empowerment & Direction
lara
6
1.3k
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/ - ໌Ҏ߱ͷͲ͔͜ͷλΠϛϯάͰఀࢭ͠·͢