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
180
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
190
wstdなんだか良さそう
askua
0
59
Dartでウェブ開発 (やりたい)
askua
0
54
Denoでパッケージを作りJSRに公開する
askua
0
36
WASI 0.2のinit処理
askua
1
98
TSのコードをRustで書き直した話
askua
4
1.1k
久しぶりに自作ライブラリをリファクタした話
askua
0
100
今年の振り返り
askua
0
91
Wasmってなに_ 新宿御苑.wasm #2024.12.11
askua
1
360
Other Decks in Technology
See All in Technology
【Λ(らむだ)】最近のアプデ情報 / RPALT20250729
lambda
0
210
相互運用可能な学修歴クレデンシャルに向けた標準技術と国際動向
fujie
0
170
経理出身PdMがAIプロダクト開発を_ハンズオンで学んだ話.pdf
shunsukenarita
1
290
Power Automate のパフォーマンス改善レシピ / Power Automate Performance Improvement Recipes
karamem0
0
280
TypeScript 上達の道
ysknsid25
23
5.1k
ecspressoの設計思想に至る道 / sekkeinight2025
fujiwara3
12
2.3k
From Live Coding to Vibe Coding with Firebase Studio
firebasethailand
1
410
「育てる」サーバーレス 〜チーム開発研修で学んだ、小さく始めて大きく拡張するAWS設計〜
yu_kod
1
230
20250728 MCP, A2A and Multi-Agents in the future
yoshidashingo
1
190
Datasets for Critical Operations by Dataform
kimujun
0
150
多様なニーズに応える Movable Type ラインナップ 全紹介
masakah
0
110
LIFF CLIとngrokを使ったLIFF/LINEミニアプリのお手軽実機確認
diggymo
0
180
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
73
4.9k
Making Projects Easy
brettharned
117
6.3k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Done Done
chrislema
185
16k
Thoughts on Productivity
jonyablonski
69
4.8k
Bash Introduction
62gerente
613
210k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Adopting Sorbet at Scale
ufuk
77
9.5k
Docker and Python
trallard
45
3.5k
Git: the NoSQL Database
bkeepers
PRO
431
65k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
The Cost Of JavaScript in 2023
addyosmani
51
8.7k
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