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
280
0
Share
Wasmで社内ツールを作って配布しよう
https://niigata-5min-tech.connpass.com/event/362312/
asuka
July 25, 2025
More Decks by asuka
See All by asuka
2025年ふりかえり
askua
1
180
ライブラリを公開してメンテナンスした一年
askua
0
79
Wasmの気になる最新情報
askua
1
340
Wasmのエコシステムを使った ツール作成方法
askua
0
360
Pure Goで体験するWasmの未来
askua
1
950
Wasm元年
askua
0
330
wstdなんだか良さそう
askua
0
120
Dartでウェブ開発 (やりたい)
askua
0
84
Denoでパッケージを作りJSRに公開する
askua
0
83
Other Decks in Technology
See All in Technology
Databricksで構築するログ検索基盤とアーキテクチャ設計
cscengineer
0
150
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4.2k
20260410 - CNTUG meetup #72 - DiskImage Builder 介紹:以 Kubespray CI 打造 RockyLinux 10 Cloud Image 為例
tico88612
0
120
2026年に相応しい 最先端プラグインホストの設計<del>と実装</del>
atsushieno
0
100
さくらのAI Engineから始める クラウドネイティブ意識
melonps
0
140
GitHub Copilotを極める会 - 開発者のための活用術
findy_eventslides
6
4k
プロダクトを触って語って理解する、チーム横断バグバッシュのすすめ / 20260411 Naoki Takahashi
shift_evolve
PRO
1
270
数案件を同時に進行するためのコンテキスト整理術
sutetotanuki
1
190
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
2
570
シン・リスコフの置換原則 〜現代風に考えるSOLIDの原則〜
jinwatanabe
0
180
新規サービス開発におけるReact Nativeのリアル〜技術選定の裏側と実践的OSS活用〜
grandbig
2
180
Introduction to Bill One Development Engineer
sansan33
PRO
0
400
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
160
Six Lessons from altMBA
skipperchong
29
4.2k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
410
Claude Code のすすめ
schroneko
67
220k
ラッコキーワード サービス紹介資料
rakko
1
3M
How to Think Like a Performance Engineer
csswizardry
28
2.5k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
68
38k
Paper Plane (Part 1)
katiecoart
PRO
0
6.5k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
160
Designing for humans not robots
tammielis
254
26k
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