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
1
35
20250228-create-npm-package-with-wasm
kazto
February 28, 2025
Tweet
Share
More Decks by kazto
See All by kazto
C言語でオブジェクト指向プログラミング / object-oriented-in-c
kazto
1
820
Golangでwget劣化クローンをつくる / wget clone with golang
kazto
1
470
登壇を応援する会忘年LT_今からやぞ_.pdf
kazto
2
4.3k
Other Decks in Programming
See All in Programming
Datadog Workflow Automation で圧倒的価値提供
showwin
1
140
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
1
500
2025.2.14_Developers Summit 2025_登壇資料
0101unite
0
160
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
880
Introduction to kotlinx.rpc
arawn
0
750
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
280
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
4
800
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
170
第3回関東Kaggler会_AtCoderはKaggleの役に立つ
chettub
3
1.1k
「個人開発マネタイズ大全」が教えてくれたこと
bani24884
1
140
Rubyと自由とAIと
yotii23
6
1.5k
たのしいSocketのしくみ / Socket Under a Microscope
coe401_
8
1.1k
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Music & Morning Musume
bryan
46
6.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Bash Introduction
62gerente
611
210k
Writing Fast Ruby
sferik
628
61k
Fireside Chat
paigeccino
34
3.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
BBQ
matthewcrist
87
9.5k
Mobile First: as difficult as doing things right
swwweet
223
9.4k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
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みたいなしくみな いらしいですね