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.5k
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
33
脆弱性診断の内製化と外注
tsukushi
9
3.9k
プロダクトセキュリティにおける欠如モデルからの脱却
tsukushi
0
1.1k
スクラム開発経験者のエンジニアが 1年間脆弱性診断してお伝えしたいいくつかのこと
tsukushi
0
920
Attractions and interests of wasm-bindgen
tsukushi
2
780
wasm-bindgen - その魅力と面白さ -
tsukushi
1
3.8k
未経験新卒エンジニアがRustを学び始めてよかったこと
tsukushi
2
9.7k
Other Decks in Programming
See All in Programming
MCP with Cloudflare Workers
yusukebe
2
260
Flatt Security XSS Challenge 解答・解説
flatt_security
0
490
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
7.6k
オニオンアーキテクチャを使って、 Unityと.NETでコードを共有する
soi013
0
330
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
290
fs2-io を試してたらバグを見つけて直した話
chencmd
0
270
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
190
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
8
1.8k
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
160
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
430
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
200
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
390
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
A designer walks into a library…
pauljervisheath
205
24k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Why Our Code Smells
bkeepers
PRO
335
57k
Bash Introduction
62gerente
609
210k
Facilitating Awesome Meetings
lara
50
6.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
RailsConf 2023
tenderlove
29
960
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Optimizing for Happiness
mojombo
376
70k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
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͕ ɹγʔϜϨεʹ͑ΔެࣜϓϩδΣΫτ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ