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
44
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
830
Golangでwget劣化クローンをつくる / wget clone with golang
kazto
1
480
登壇を応援する会忘年LT_今からやぞ_.pdf
kazto
2
4.4k
Other Decks in Programming
See All in Programming
フロントエンドテストの育て方
quramy
9
2.5k
安全に倒し切るリリースをするために:15年来レガシーシステムのフルリプレイス挑戦記
sakuraikotone
5
2.3k
Node.js, Deno, Bun 最新動向とその所感について
yosuke_furukawa
PRO
6
3k
WordPress Playground for Developers
iambherulal
0
120
OUPC2024 Day 1 解説
kowerkoint
0
400
S3静的ホスティング+Next.js静的エクスポート で格安webアプリ構築
iharuoru
0
190
Compose Navigation実装の見通しを良くする
hiroaki404
0
180
PHPのガベージコレクションを深掘りしよう
rinchoku
0
240
Windows版PHPのビルド手順とPHP 8.4における変更点
matsuo_atsushi
0
370
Fluent UI Blazor 5 (alpha)の紹介
tomokusaba
0
140
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
0
920
JavaOne 2025: Advancing Java Profiling
jbachorik
1
310
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
A better future with KSS
kneath
238
17k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Building an army of robots
kneath
304
45k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
31
4.7k
Optimizing for Happiness
mojombo
377
70k
GraphQLの誤解/rethinking-graphql
sonatard
70
10k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
GitHub's CSS Performance
jonrohan
1030
460k
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みたいなしくみな いらしいですね