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
ブラウザの外側でWasmを使おう
Search
teru0x1
July 24, 2023
Programming
0
280
ブラウザの外側でWasmを使おう
kernel/vm #16 LT
teru0x1
July 24, 2023
Tweet
Share
More Decks by teru0x1
See All by teru0x1
マルチクラスタの認知負荷に立ち向かう! Ubieのプラットフォームエンジニアリング
teru0x1
3
2.7k
スタブサーバ自動生成ツール 〜負荷試験をもっと楽に〜
teru0x1
0
1.5k
バッチシステムをクラウドネイティブにするために考えたこと
teru0x1
17
7.8k
クラウド環境をFargateに 移行して得た知見
teru0x1
0
1.4k
Goと定数 DMM.go #3
teru0x1
0
2.4k
はてなインターン2020成果発表
teru0x1
0
980
入門QUIC
teru0x1
0
450
【衝撃】Archlinuxをインストールした結果がヤバすぎた!
teru0x1
0
50
Docker講習会
teru0x1
0
120
Other Decks in Programming
See All in Programming
M5Stackボードの選び方
tanakamasayuki
0
200
いまあるチームにフィットさせる Serverless そして Platform Engineeringへの挑戦 / Serverless Fits the Team You Have and Platform Engineering
seike460
PRO
2
1.3k
ビット演算の話 / Let's play with bit operations
kaityo256
PRO
4
160
タイミーにおけるデータの利用シーンと データ基盤の挑戦
marufeuille
4
3.1k
Kubernetes上でOracle_Databaseの運用を楽にするOraOperatorの紹介
nnaka2992
0
150
個人開発で使ってるやつを紹介する回
yohfee
1
660
ROS 2のZenoh対応とZenohのROS 2対応
takasehideki
2
250
sqlcを利用してsqlに型付けを
kamiyam
0
230
Pydantic x Database API:turu-pyの開発
yassun7010
1
480
Kotlin Multiplatform at Stable and Beyond (Kotlin Vienna, October 2024)
zsmb
2
330
GitHub Copilot Workspace で我々のアプリ開発がどう変わるのか?
shuyakinjo
0
850
What is TDD?
urakawa_jinsei
1
200
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
49
7.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
38
2.1k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
44
2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
125
18k
Web development in the modern age
philhawksworth
205
10k
The Mythical Team-Month
searls
218
43k
Code Reviewing Like a Champion
maltzj
519
39k
Being A Developer After 40
akosma
84
590k
Agile that works and the tools we love
rasmusluckow
327
21k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
Embracing the Ebb and Flow
colly
83
4.4k
Transcript
ブラウザの外側でWasmを使おう
本日話すこと WebAssembly(Wasm)
WebAssembly “binary instruction format for stack-based virtual machine” 実行環境: (当初)Webブラウザ
(現在) あらゆる環境 Safe: sandbox model import/export Efficient and fast: aim to executed at near-native speed Portable: language/platform independent Open and debuggable: WAT
WASI • WebAssembly System Interface • ファイルIOやネットワークIOなどのAPIセットを定めたもの ◦ POSIX的なもの •
Webブラウザの外でもポータビリティを持たせることが可能に ◦ ブラウザ内外問わず Wasmが使えるように https://github.com/bytecodealliance/wasmtime/blob/main/docs/W ASI-overview.md
Shopify function • ShopifyのインフラでECサイト開発者が作成 したコードを呼び出せる機能 ◦ Shopifyのインフラで動作 • Wasmが実行される ◦
Wasmにビルドできる言語ならなんでも使える • Wasmが採用された理由 ◦ Security ◦ Flexibility ◦ Performance https://shopify.engineering/shopify-webassembly
github.com/ncruces/go-sqlite3 • Golang製SQLite3のドライバの1つ • WasmにビルドしたSQLiteをラップし、 wazero(Go moduleとして使えるwasmラ ンタイム)から呼び出す • 既存の資産を利用しつつドライバをCGO
非依存にできる ◦ pure-goになって嬉しい ←sqlite3.wasm(1.4MB)
おわりに • Wasm/WASIとブラウザ外で使われるWasm事例を紹介 向いてそうな例 • プラットフォーム上で第三者にコードを実行させたい • ↑この際多様な言語の選択肢を提供したい • プラグインの仕組みを提供したい
◦ Proxy-Wasmなど • C/C++などの既存資産を利用したい
自己紹介 小野 輝也(@teru0x1) Software Engineer@Ubie We are hiring!