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.6k
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
66
脆弱性診断の内製化と外注
tsukushi
9
4.2k
プロダクトセキュリティにおける欠如モデルからの脱却
tsukushi
0
1.2k
スクラム開発経験者のエンジニアが 1年間脆弱性診断してお伝えしたいいくつかのこと
tsukushi
0
1.1k
Attractions and interests of wasm-bindgen
tsukushi
2
830
wasm-bindgen - その魅力と面白さ -
tsukushi
1
4k
未経験新卒エンジニアがRustを学び始めてよかったこと
tsukushi
2
10k
Other Decks in Programming
See All in Programming
組込みだけじゃない!TinyGo で始める無料クラウド開発入門
otakakot
2
370
Ktorで簡単AIアプリケーション
tsukakei
0
100
Domain-centric? Why Hexagonal, Onion, and Clean Architecture Are Answers to the Wrong Question
olivergierke
3
970
コード生成なしでモック処理を実現!ovechkin-dm/mockioで学ぶメタプログラミング
qualiarts
0
260
NIKKEI Tech Talk#38
cipepser
0
230
チームの境界をブチ抜いていけ
tokai235
0
220
Goで実践するドメイン駆動開発 AIと歩み始めた新規プロダクト開発の現在地
imkaoru
4
890
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
250
CSC509 Lecture 06
javiergs
PRO
0
270
Foundation Modelsを実装日本語学習アプリを作ってみた!
hypebeans
1
130
Catch Up: Go Style Guide Update
andpad
0
250
CSC509 Lecture 08
javiergs
PRO
0
250
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
890
Optimizing for Happiness
mojombo
379
70k
Agile that works and the tools we love
rasmusluckow
331
21k
How STYLIGHT went responsive
nonsquared
100
5.9k
Documentation Writing (for coders)
carmenintech
75
5.1k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Keith and Marios Guide to Fast Websites
keithpitt
411
23k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
Facilitating Awesome Meetings
lara
57
6.6k
Speed Design
sergeychernyshev
32
1.2k
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͕ ɹγʔϜϨεʹ͑ΔެࣜϓϩδΣΫτ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ