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
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Pe...
Search
mackee
December 09, 2025
Programming
1.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
YAPC::Fukuoka 非公式リジェクトコン 2025
mackee
December 09, 2025
More Decks by mackee
See All by mackee
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
840
Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜
mackee
6
6.6k
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
14
7.6k
ワンバイナリWebサービスのススメ
mackee
10
9.2k
tanukistack ライブコーディング / tanukistack live-coding
mackee
0
900
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
1.2k
perl for shell, awk and sed programmers
mackee
3
2.9k
今更GoのWebフレームワークを作ろうとしているワケ / Why am I trying to create a Go web framework now?
mackee
1
1.2k
database/sqlでNullを扱う歴史とsql.Null[T]の登場 / sql.Null[T] history
mackee
0
1k
Other Decks in Programming
See All in Programming
速習iPhone Duo対応
yuukiw00w
2
960
残高管理から台帳サービスへの進化
artoy
0
140
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
270
phperだってパンチカードでコーディングしたい
o0h
PRO
0
200
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
340
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
140
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.9k
Heart of Swift Concurrency
koher
0
1.2k
Java 27新機能 / Java 27 new features
kishida
2
200
SREの越境 / SRE Collaboration
y0hgi
2
300
機械に任せるテスト、人が見るテスト ⽣成AIで引き直した、運⽤保守フェーズの線引き
dske104
0
160
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
15k
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Navigating Weather and Climate Data
rabernat
0
550
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
Typedesign – Prime Four
hannesfritz
42
3.2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
530
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
540
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
620
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
310
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
360
Transcript
perlΛWebAssembly্Ͱಈ͔ ͢ͱԿ͕خ͍͠ͷʁʁʁ macopy YAPC::Fukuoka 2025 ඇެࣜϦδΣΫτίϯ
None
ຊฤͰ͜͏͍͏τʔΫΛͬͨऀͰ͢
Do you know Perl??
Do you know WebAssembly??
WebAssembly(MDNΑΓ) • WebAssembly ݱͷΣϒϒϥβʔͰ࣮ߦͰ͖ΔίʔυͷҰछ Ͱ͢ɻωΠςΟϒʹ͍ۙύϑΥʔϚϯεͰಈ࡞͢ΔɺίϯύΫτͳό ΠφϦʔܗࣜͷϨϕϧͳΞηϯϒϦʔ෩ݴޠͰ͢ɻ͞Βʹɺ C/ C++ɺC# Rust
ͳͲͷݴޠͷίϯύΠϧઌͱͳΓɺͦΕΒͷݴޠΛ Σϒ্Ͱ࣮ߦ͢Δ͜ͱ͕Ͱ͖·͢ɻ ·ͨɺJavaScript ͱฒ࣮ͯߦ ͢ΔΑ͏ʹઃܭ͞Ε͓ͯΓɺ྆ํΛҰॹʹಈ࡞ͤ͞Δ͜ͱ͕Ͱ͖· ͢ɻ
ͳΔ΄Ͳͳ͋
ͦ͏͍͑Perl
WebAssembly(MDNΑΓ) • WebAssembly ݱͷΣϒϒϥβʔͰ࣮ߦͰ͖ΔίʔυͷҰछ Ͱ͢ɻωΠςΟϒʹ͍ۙύϑΥʔϚϯεͰಈ࡞͢ΔɺίϯύΫτͳό ΠφϦʔܗࣜͷϨϕϧͳΞηϯϒϦʔ෩ݴޠͰ͢ɻ͞Βʹɺ C/ C++ɺC# Rust
ͳͲͷݴޠͷίϯύΠϧઌͱͳΓɺͦΕΒͷݴޠΛ Σϒ্Ͱ࣮ߦ͢Δ͜ͱ͕Ͱ͖·͢ɻ ·ͨɺJavaScript ͱฒ࣮ͯߦ ͢ΔΑ͏ʹઃܭ͞Ε͓ͯΓɺ྆ํΛҰॹʹಈ࡞ͤ͞Δ͜ͱ͕Ͱ͖· ͢ɻ
ɹPerlɹ (ƅшƅ)ɹWebAssembly ɹɹɹʘʗ|ɹy |ʘʗ
ɹɹPerlшƅWebAssembly ɹɹɹɹlʗ|ɹy |ʘl
zeroperl
zeroperlͬͯԿ • perlίϚϯυΛWebAssembly͚ʹίϯύΠϧͨ͠ͷ • github.com/6over3/zeroperl • ۩ମతʹwasi-sdkΛؚΊͯϏϧυͨ͠ͷ • wasi-sdklibcΛஔ͖͑ͯWASM͔ΒWASIΛ͑ΔΑ͏ʹͨ͠ ͷͰ…
perlΛWASMͰಈ͔ͯ͠Կ͕خ͍͠ͷʁ • zeroperlͷಈػ: ExifToolΛWebͰಈ͔͍ͨ͠ • exiftool.org • ը૾ͷϝλσʔλͰ͋ΔExifΛಡΈॻ͖͢ΔϞδϡʔϧ(Perl) • github.com/6over3/exiftool
• JavaScript͔ΒExifToolΛ͑ΔΑ͏ʹ͢Δ
1. PerlͰॻ͔Εͨࢿ࢈Λ͍͍ͨ
ͦͷଞPerlͰॻ͔ΕͨͷͰWASMͰಈ͔ͨ͠ Β(ໝ) • pt-query-digest • ϒϥβ্ͰϚΠάϨʔγϣϯ͍ͨ͜͠ͱ͕͋Δ͔Ͱ͍͏ͱṖ • ΤοδͳΒ༗༻͔ʁ͏ʔΜͲ͏ͩΖ͏ • όΠΦܥͩͱPerlͷίʔυͷࢿ࢈͕͋ΔΒ͍͠
2. ΤοδͰಈ͔͍ͨ͠
WASMϕʔεͷΤοδίϯϐϡʔςΟϯάڥ • Fastly Compute@Edge • WasmEdge • github.com/WasmEdge/WasmEdge • ࣗલͰFaaSΛཱͯΔ߹ʹ͏ίϯϙʔωϯτ
• Cloud fl are WorkersͰWASMಈ͘
3. ܰྔαϯυϘοΫεͱͯ͠ಈ͔͍ͨ͠
Anybatross • ΧϠοΫ͕ެ։͍ͯͨ͠ YAPC::Fukuoka͚ͷίʔυΰ ϧϑίϯςεταΠτ • Ϣʔβʔ͔Βૹ৴͞Εͨίʔυ Λ࣮ߦ͢ΔαϯυϘοΫεڥ ͱͯ͠WASMͱzeroperl͕༻͍ ΒΕ͍ͯΔ
[AD]ཪଆϒϩάॻ͍ͨͷͰͥͻʂ https://techblog.kayac.com/dive-to-anybatross
4. Only perl can parse Perl
???????
PerlΛύʔε͍ͨ࣌͠ʹ͏ʂ
ࢥ͍ग़͢γϦʔζ • YAPC::Japan::Online 2022ͷΞϯΧ ϑΝϨϯεͰࢲ͕ͨͭ͠ • Perlͱͯ͠ղऍͰ͖ͨΒফ͑Δͱ͍͏ ϧʔϧͩͬͨ • ࣌GoͰήʔϜ෦Λॻ͍ͯύʔε
Λ֎෦ίϚϯυݺͼग़͠Ͱ͍ͬͯͨ
ࠓͳΒWebͰ ΕΔͷͰͳ͍͔ʁʁʁʁʁ
ϓϨΠ
࣮Τά͍ߏ Perl on WASM on WASM #SPXTFS (PPO8"4. &CJUFO XB[FSP
[FSPQFSM
·ͱΊ • ϒϥβͰಈ͔ͤΔzeroperlͱ͍͏ͷ͕͋ΔΑ • WASMࣗମϒϥβͰಈ͔͢Ҏ֎ͷ༻్͋ΔΑ • Perl͓͠ΖݴޠͳͷͰɺ͓͠ΖݴޠΛ͋ͪͪ͜Ͱ ಈָ͔͍ͤͯ͠Α