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
20250228-create-npm-package-with-wasm
Search
kazto
February 28, 2025
Programming
130
1
Share
20250228-create-npm-package-with-wasm
kazto
February 28, 2025
More Decks by kazto
See All by kazto
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
520
アイカツ!から学ぶビジネスパーソンとしての姿勢 / learn-the-attitude-of-businessperson-from-aikatsu
kazto
0
740
C言語でオブジェクト指向プログラミング / object-oriented-in-c
kazto
1
940
Golangでwget劣化クローンをつくる / wget clone with golang
kazto
1
530
登壇を応援する会忘年LT_今からやぞ_.pdf
kazto
2
4.6k
Other Decks in Programming
See All in Programming
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
6.4k
The Monolith Strikes Back: Why AI Agents ❤️ Rails Monoliths
serradura
0
320
10 Tips of AWS ~Gen AI on AWS~
licux
5
370
感情を設計する
ichimichi
5
1.5k
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
2.5k
Oxlintとeslint-plugin-react-hooks 明日から始められそう?
t6adev
0
240
의존성 주입과 모듈화
fornewid
0
130
LM Linkで(非力な!)ノートPCでローカルLLM
seosoft
0
480
ローカルで稼働するAI エージェントを超えて / beyond-local-ai-agents
gawa
3
270
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
1
100
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
130
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
260
Featured
See All Featured
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
320
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
180
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
740
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
Ruling the World: When Life Gets Gamed
codingconduct
0
200
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
260
We Are The Robots
honzajavorek
0
210
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
140
Accessibility Awareness
sabderemane
0
99
Code Review Best Practice
trishagee
74
20k
Transcript
WASMをビルドして npmパッケージにする (個人的な作業進捗を添えて) 2025/02/28 新宿御苑.wasm kazto_dev
自己紹介 • 横浜のSIerで働いている多摩地区在住 • 仕事ではマルチスタックと言う名のなんでも屋 ◦ メインはサーバサイド ◦ フロントエンドちょこっと ◦
Flutterスマホアプリちょこっと ◦ AWSちょこっと • 自社で一番WASMとZigとCloudflareを語れる人になりたい
やりたいこと • 昨年末のアドベントカレンダーでこんなん書きました
やりたいこと • fzfの検索で、migemo風にローマ字で日本語検索できたら便利そう • 本丸は、CLI • npmパッケージにして、フロントエンドとかでも使えたりしないか? ◦ fzfもmigemoもGolang実装だし、WASMで配布できるのでは?
おおまかなステップ • 簡単なWASMをビルドしてnpmパッケージにする • npm installして使えることを確認する • 使いたい外部パッケージ (gomigemo, fzf)
をWASMビルドする • どれをどう呼んだら連結させられるか(たぶんここまではまだ行けない)
簡単なWASMをビルドしてnpmパッケージにする • 右のような簡単なソースをつくる • GOOS=js GOARCH=wasm go build -o add.wasm
add.go main.go
npmパッケージをつくる • ./dist/ ディレクトリに下記を置く ◦ add.wasm ◦ $(go env GOROOT)/misc/wasm/wasm_exec.js
◦ index.js (右記) • npm publish
・・・結果
時間切れ • お目汚し失礼いたしました🙇 • さきほど知ったんですが、WASMにはまだDynamic Link Libraryみたいなしくみな いらしいですね