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
50
脆弱性診断の内製化と外注
tsukushi
9
3.9k
プロダクトセキュリティにおける欠如モデルからの脱却
tsukushi
0
1.1k
スクラム開発経験者のエンジニアが 1年間脆弱性診断してお伝えしたいいくつかのこと
tsukushi
0
950
Attractions and interests of wasm-bindgen
tsukushi
2
790
wasm-bindgen - その魅力と面白さ -
tsukushi
1
3.8k
未経験新卒エンジニアがRustを学び始めてよかったこと
tsukushi
2
9.8k
Other Decks in Programming
See All in Programming
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
370
JavaScriptツール群「UnJS」を5分で一気に駆け巡る!
k1tikurisu
9
1.8k
PHP ステートレス VS ステートフル 状態管理と並行性 / php-stateless-stateful
ytake
0
100
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
170
仕様変更に耐えるための"今の"DRY原則を考える / Rethinking the "Don't repeat yourself" for resilience to specification changes
mkmk884
2
520
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
0
210
定理証明プラットフォーム lapisla.net
abap34
1
1.8k
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
110
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
170
『GO』アプリ バックエンドサーバのコスト削減
mot_techtalk
0
150
時計仕掛けのCompose
mkeeda
1
300
法律の脱レガシーに学ぶフロントエンド刷新
oguemon
5
740
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
30
4.6k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Faster Mobile Websites
deanohume
306
31k
How to train your dragon (web standard)
notwaldorf
91
5.8k
Speed Design
sergeychernyshev
27
790
Git: the NoSQL Database
bkeepers
PRO
427
64k
Why Our Code Smells
bkeepers
PRO
336
57k
Designing Experiences People Love
moore
140
23k
Navigating Team Friction
lara
183
15k
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͕ ɹγʔϜϨεʹ͑ΔެࣜϓϩδΣΫτ
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ