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
Rust + WebAssemblyに入門した話
Search
Misaki Makino
September 05, 2018
Programming
1
2.7k
Rust + WebAssemblyに入門した話
2018/09/05 Rust入門者の集い #5
で発表した内容です。
Misaki Makino
September 05, 2018
Tweet
Share
More Decks by Misaki Makino
See All by Misaki Makino
社会人がProSecで学んでみて
tsukushi
0
86
脆弱性診断の内製化と外注
tsukushi
9
4.3k
プロダクトセキュリティにおける欠如モデルからの脱却
tsukushi
0
1.3k
スクラム開発経験者のエンジニアが 1年間脆弱性診断してお伝えしたいいくつかのこと
tsukushi
0
1.1k
Attractions and interests of wasm-bindgen
tsukushi
2
850
wasm-bindgen - その魅力と面白さ -
tsukushi
1
4.2k
未経験新卒エンジニアがRustを学び始めてよかったこと
tsukushi
2
10k
Other Decks in Programming
See All in Programming
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
420
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
150
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
220
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
120
AIに任せる範囲を安全に広げるためにやっていること
fukucheee
0
140
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
400
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
220
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
9
2.9k
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
3
400
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
310
Docコメントで始める簡単ガードレール
keisukeikeda
1
130
SourceGeneratorのマーカー属性問題について
htkym
0
200
Featured
See All Featured
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
350
Docker and Python
trallard
47
3.8k
A Soul's Torment
seathinner
5
2.5k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
490
Accessibility Awareness
sabderemane
0
82
Practical Orchestrator
shlominoach
191
11k
[SF Ruby Conf 2025] Rails X
palkan
2
840
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
150
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Transcript
Rust + WebAssembly ʹೖͨ͠ Rustೖऀͷू͍ #5 @T5uku5hi
ඒ࡙ @T5uku5hi ɾ৽ଔ2ͷͻΑͬ͜ΤϯδχΞ ɾະܦݧͰΤϯδχΞͷੈք ɾۀͰJavaΛ༻ ɾRustΛۀͰ͍͍ͨʂ ࣗݾհ
ΰʔϧ ɹɾWebAssemblyͷ֓ཁ ɹɾwasm-bindgenͷಛ͍ํ ͜ͷLTΛฉ͍ͨํʑ͕ɺ ΛཧղͰ͖ΔΑ͏ʹͳΔ͜ͱ
WebAssemblyͱ ҰݴͰݴ͏ͱ Webϒϥβ্Ͱ࣮ߦͰ͖ΔόΠφϦܗࣜ ඪ (Mozilla MDN web docsΑΓ) ɹɾߴͰɺߴޮͰɺϙʔλϒϧͰ͋Δ ɹɾՄಡੑΛ࣋ͪɺσόοάՄೳͰ͋Δ
ɹɾ҆શͰ͋Δ ɹɾଞͷWebٕज़ͱͷޙํޓੑ͕͋Δ
WebAssemblyΛ͍ͯΈΑ͏ MozillaͷΦϯϥΠϯIDE WebAssembly Studio
wasm-bindgenͱ RustͱJavaScriptͱwasm͕ γʔϜϨεʹ͑ΔެࣜϓϩδΣΫτ ҰݴͰݴ͏ͱ
wasm-bindgenͰRust → JS ɾެࣜνϡʔτϦΞϧΛͬͯΈͨ ɹίϯΣΠͷϥΠϑήʔϜ ɹhttps://github.com/rustwasm/wasm_game_of_life ɾRustͷߏମΛconsole.logͰݺͼग़ͯ͠Έͨ ͠ΐ΅͍ͯ͘͢·ͤΜ
ϓϩδΣΫτͷ࡞ΓํɾΒͤํ DBSHPHFOFSBUFHJUIUUQTHJUIVCDPNSVTUXBTNXBTN QBDLUFNQMBUFHJU XBTNQBDLJOJU OQNJOJUXBTNBQQXXX OQNMJOL!QLHͷσΟϨΫτϦ OQNMJOLϧʔτσΟϨΫτϦͷ໊લ!XXXͷσΟϨΫτϦ DBSHPJOTUBMMXBTNQBDL DBSHPJOTUBMMDBSHPHFOFSBUF XBTNQBDLJOJUϗʔϜσΟϨΫτϦ
OQNJOTUBMM!XXXͷσΟϨΫτϦ OQNSVOTUBSU!XXXͷσΟϨΫτϦ
web-sysͱjs-sysΛͬͯΈͨ wasm-bindgenͷઈࢍ։ൃதͷcrates✨ wasm-bindgenͰJS → Rust
web-sysͱjs-sysͷ࢝Ίํ 1) wasm-bindgenϓϩδΣΫτΛgit clone 2) /example/canvas/src/lib.rsͷதΛ ɹॻ͖͑Δ 3) sh build.shΛ࣮ߦ
DemoΛ͓ݟͤ͠·͢ʂ
context.fillStyle͕ະ࣮Ͱͨ͠ ৭͖ͷϚϦΦʹͳΒͳ͔ͬͨ…
ͭ·͍ͮͨ͜ͱ ɾ1.30.0-nightly (28bcffead 2018-09-01) ɾ1.30.0-nightly (0f063aef6 2018-09-03) ͩͱίϯύΠϧʹࣦഊ͠·͢ɻ (issueཱͬͯ·͕͢ະղܾͰ͢) $wasm-pack
init$sh build.shɺͦͷཪଆͰnightlyͱ ໊લͷ͍ͭͨͷΛར༻͍ͯ͠ΔΑ͏Ͱ͢ɻ ɹˠ.rust-toolchainͰόʔδϣϯཧͯͩ͠Ί
ղܾࡦ: खಈͰ͢ SVTUVQUPPMDIBJOJOTUBMMOJHIUMZ ./rustup/toolchains ./rustup/update-hashes ʹ͋ΔnightlyΛআ nightly-2018-08-19Λnightlyʹrename
·ͱΊ ɾWebAssemblyͱ ɹWebϒϥβ্Ͱ࣮ߦͰ͖ΔόΠφϦܗࣜ ɾwasm-bindgenͱ ɹRustͱJavaScriptͱwasm͕ ɹγʔϜϨεʹ͑ΔެࣜϓϩδΣΫτ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ