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
140
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
580
アイカツ!から学ぶビジネスパーソンとしての姿勢 / learn-the-attitude-of-businessperson-from-aikatsu
kazto
0
910
C言語でオブジェクト指向プログラミング / object-oriented-in-c
kazto
1
970
Golangでwget劣化クローンをつくる / wget clone with golang
kazto
1
540
登壇を応援する会忘年LT_今からやぞ_.pdf
kazto
2
4.7k
Other Decks in Programming
See All in Programming
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
170
5分で問診!Composer セキュリティ健康診断
codmoninc
0
870
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
190
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
200
数百円から始めるRuby電子工作
tarosay
0
130
Detecting Compromised CI with eBPF and Cilium Tetragon
lizrice
0
150
今さら聞けない .NET CLI
htkym
0
180
Foundation Models frameworkで画像分析
ryodeveloper
1
570
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
継続モナドとリアクティブプログラミング
yukikurage
3
690
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
490
Built Our Own Background Agent at LayerX
layerx
PRO
9
4.9k
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Ethics towards AI in product and experience design
skipperchong
2
340
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
From π to Pie charts
rasagy
0
250
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
350
For a Future-Friendly Web
brad_frost
183
10k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
How to Ace a Technical Interview
jacobian
281
24k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Rails Girls Zürich Keynote
gr2m
96
14k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
480
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みたいなしくみな いらしいですね