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
150
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
APNsからLive Activityを開始する話
yumnumm
0
190
FlutterKaigi 2025 公式アプリ&WebサイトのCDについて
yumnumm
0
180
FlutterKaigi 2025 システム裏側
yumnumm
0
2.3k
Terraform+cloud-initで自宅サーバのLXDをIaCするお話
yumnumm
2
320
FlutterKaigi 2024における開発チームの取り組み と 2025への展望
yumnumm
0
120
Apple Walletでパスを作るお話
yumnumm
0
300
私がやってきたアウトプット集
yumnumm
0
240
俺/私のこだわりデスク大大大自慢LT大会 (LTFes #12)
yumnumm
0
170
仕事以外で作成したプロダクトの自慢大会
yumnumm
0
250
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
120
ActionController meets Protocol Buffers
sorah
1
780
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.2k
複数ドメインを一つのアプリに統合するFlutterの設計と運用_FlutterKaigi2026登壇資料(須永高弘)
takahirosunaga
0
160
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
280
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
110
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.6k
PumaからFalconに移行したRailsアプリケーションでの実践
falcon8823
0
350
Railsバージョンを4倍にした話
optim
0
940
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
AI-Powered Domain-Driven Design
ziobrando
0
400
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.1k
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
370
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
440
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
650
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
1k
Speed Design
sergeychernyshev
33
2.2k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
740
The untapped power of vector embeddings
frankvandijk
2
2k
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/ - ໌Ҏ߱ͷͲ͔͜ͷλΠϛϯάͰఀࢭ͠·͢