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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kazto
February 28, 2025
Programming
140
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
540
アイカツ!から学ぶビジネスパーソンとしての姿勢 / learn-the-attitude-of-businessperson-from-aikatsu
kazto
0
800
C言語でオブジェクト指向プログラミング / object-oriented-in-c
kazto
1
960
Golangでwget劣化クローンをつくる / wget clone with golang
kazto
1
530
登壇を応援する会忘年LT_今からやぞ_.pdf
kazto
2
4.6k
Other Decks in Programming
See All in Programming
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
320
LLM Plugin for Node-REDの利用方法と開発について
404background
0
150
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
2
4.7k
tsserverとは何だったのか、これからどうなるのか
nowaki28
1
430
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
140
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
270
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
400
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
240
Talking to terminals (and how they talk back) (KotlinConf 2026)
jakewharton
PRO
1
160
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
200
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
11k
CSC307 Lecture 17
javiergs
PRO
0
290
Featured
See All Featured
Test your architecture with Archunit
thirion
1
2.3k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
470
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
My Coaching Mixtape
mlcsv
0
140
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
380
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
130
Accessibility Awareness
sabderemane
1
130
The World Runs on Bad Software
bkeepers
PRO
72
12k
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みたいなしくみな いらしいですね