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
Wasmで社内ツールを作って配布しよう
Search
asuka
July 25, 2025
Technology
0
230
Wasmで社内ツールを作って配布しよう
https://niigata-5min-tech.connpass.com/event/362312/
asuka
July 25, 2025
Tweet
Share
More Decks by asuka
See All by asuka
Wasmの気になる最新情報
askua
0
240
Wasmのエコシステムを使った ツール作成方法
askua
0
290
Pure Goで体験するWasmの未来
askua
1
230
Wasm元年
askua
0
250
wstdなんだか良さそう
askua
0
87
Dartでウェブ開発 (やりたい)
askua
0
66
Denoでパッケージを作りJSRに公開する
askua
0
57
WASI 0.2のinit処理
askua
1
150
TSのコードをRustで書き直した話
askua
4
1.1k
Other Decks in Technology
See All in Technology
AWS資格は取ったけどIAMロールを腹落ちできてなかったので、年内に整理してみた
hiro_eng_
0
230
アジャイル社内普及ご近所さんマップを作ろう / Let's create an agile neighborhood map
psj59129
1
130
身近なCSVを活用する!AWSのデータ分析基盤アーキテクチャ
koosun
0
1.5k
ZOZOTOWNカート決済リプレイス ── モジュラモノリスという過渡期戦略
zozotech
PRO
0
400
AIと自動化がもたらす業務効率化の実例: 反社チェック等の調査・業務プロセス自動化
enpipi
0
620
JJUG CCC 2025 Fall バッチ性能!!劇的ビフォーアフター
hayashiyuu1
1
340
はじめての OSS コントリビューション 〜小さな PR が世界を変える〜
chiroito
4
340
今、MySQLのバックアップを作り直すとしたら何がどう良いのかを考える旅
yoku0825
2
400
ググるより、AIに聞こう - Don’t Google it, ask AI
oikon48
0
930
マイクロリブート ~ACEマインドセットで実現するアジャイル~
sony
1
390
Javaコミュニティの歩き方 ~参加から貢献まで、すべて教えます~
tabatad
0
130
Flutterにしてよかった?出前館アプリを2年運用して気づいたことを全部話します
demaecan
0
210
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Gamification - CAS2011
davidbonilla
81
5.5k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
1.8k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Why Our Code Smells
bkeepers
PRO
340
57k
A designer walks into a library…
pauljervisheath
210
24k
GitHub's CSS Performance
jonrohan
1032
470k
Scaling GitHub
holman
463
140k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Transcript
社内ツールを作って配布しよう N5T #21 Jul 25, 2025 Wasmで
WHOAMI asuka • 株式会社モニクル/SWE ◦ Monicle Techbook vol.1 技術書典17 •
Wasm関連の同人誌・商業誌の執筆 ◦ 実践入門WebAssembly ◦ WebAssembly System Interface入門 ◦ ご注文はWASIですか?? 技術書典16 ◦ Wasm Cookbook vol.2 技術書典17 ◦ Wasm Cookbook vol.3 技術書典18 ◦ Wasm Cookbook vol.4 技術書典NT • 新宿御苑.dev ◦ 新宿御苑.wasm #2025.6.25 LTイベント 2 商業誌 Cookbookシリーズ ごちWASI
前回のあらすじ 3
新宿御苑.wasm #2025.6.25 4 https://speakerdeck.com/askua/wasmyuan-nian Wasm元年なので,
新宿御苑.wasm #2025.6.25 5 https://speakerdeck.com/askua/wasmyuan-nian 社内ツールを作ろう という話をした
サンプル作ってきたよ 6 MCPサーバーのサンプル持ってこようとしたけれども,既存のライブラリがビルド依存の関係で使えなかった
Wasmのおさらい • シングルバイナリでどこでも実行できる • 配布する手段がある • セキュアである → マルチプラットフォーム時代に適した仕組みである 7
LLMを使えば 社内ツールなんて 作らなくてもいいのに
read-web : 指定したURLのHTMLをMDに変換 8 • https://github.com/a-skua/example-wasi/tree/main/read-web • https://github.com/users/a-skua/packages/container/package/read-web
実装 • Go (tinygo) • https://github.com/JohannesKaufmann/html-to-markdown ◦ HTML to Markdown
• https://github.com/a-skua/go-wasi ◦ Goの標準パッケージでサポートできていない HTTP通信のサポート ◦ ※ HTTP通信はWASI 0.2でサポートされている 9
配布 Container RegistoryであればどこでもOK → e.g. Docker Hub 今回は GitHub Packages
push • wkg oci push ghcr.io/a-skua/read-web:1.0.0 bin/read.wasm pull • wkg oci pull -o read.wasm ghcr.io/a-skua/read-web:1.0.0 10
実行 wasmtime run -S http read.wasm -url https://example.com 11 ランタイム
ランタイムの権限
セキュア ランタイム権限の他にも,ユーザーがAPIを制御しやすい 12 OS Wasm ランタイム (権限制御) Wasm モジュール API
API Wasm モジュール func Handle() { panic("Handle is not supported in this example") } wac plug read.wasm \ --plug omit.wasm \ -o omit-read.wasm
セキュア 13 panic: Handle is not supported in this example
Wasmで社内ツールを作って配布しよう fin