Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Rust製GUIライブラリ
Search
Yuya Kanai
October 20, 2023
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rust製GUIライブラリ
Yuya Kanai
October 20, 2023
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
18k
Abbi's Birthday
coloredviolet
4
10k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
How to Ace a Technical Interview
jacobian
280
24k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
940
GraphQLとの向き合い方2022年版
quramy
50
15k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
Transcript
Rust製GUIライブラリ
動機 衝撃の音楽アプリとの出会い2013 Sunvox / Sundog engine (2008 ~) https://warmplace.ru/soft/sunvox/ React
native (2015 ~ ) Flutter (2017 ~ )
挑戦 2017 OpenGL & C++ で試みる + C++ 難しい +
メモリ管理 + 多機能すぎる + ビルド設定・リンカー難しい + パッケージマネージャが無い + Mac / iOSのOpenGL非推奨化
挑戦 2017 OpenGL & C++ で試みる + C++ 難しい +
メモリ管理 + 多機能すぎる + ビルド設定・リンカー難しい + パッケージマネージャが無い + Mac / iOSのOpenGL非推奨化
挑戦 2017 OpenGL & C++ で試みる + C++ 難しい +
メモリ管理 + 多機能すぎる + ビルド設定・リンカー難しい + パッケージマネージャが無い + Mac / iOSのOpenGL非推奨化
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
再挑戦 2022 きっかけ:RUST & It’s Ecosystem + メモリ管理 => 😃
+ 多機能すぎる => 😃 + ビルド設定・リンカー難しい => 😃 + パッケージマネージャが無い => 😃 + iOSのOpenGL非推奨化 => WGPU + その他GUI作りに便利そうなライブラリ多数
GUIライブラリ思想 ~デザインをDRYに~ デザイナーが書いたSVGをそのままGitにコミット エンジニアなしで単純な見た目上の更新は出来るようにする
DEMO1: 人生ゲーム 150行 rust + Figma SVG iOS / Android
/ Web / MacOSで動作確認済み
DEMO1: 人生ゲーム 150行 rust + Figma SVG iOS / Android
/ Web / MacOSで動作確認済み
DEMO2: レイアウトエンジン Rust 30行 Figma互換レイアウト
アーキテクチャ Guppies Salvage * Rustは海が テーマの言語なので パッケージ名は 海風 SVG mono-repo
library二つある
Guppies(グッピー) + GPU描画 + 三角形とシェーダーを受け取り描画する + Cross-Platform: iOS / Android
/ web / Mac / windows … Guppies Salvage SVG
Salvage(サルベージ) + SVG描画 + SVGを移動できる + SVGのテキストを更新 Guppies Salvage SVG
Guppies(グッピー): ライブラリ - Winit : イベントループ実行 - Wgpu : GPU描画
- Cargo-mobile : Xcode / Android studio 初期化 winit wgpu cargo-mobile
Salvage(salvage):ライブラリ - Usvg : 一般的なsvgを単純なベジェ曲線や直線のpathのみのSVGに変換 - Lyon : ベジェ曲線等を三角形に変更(tesselation) -
Glam: 行列の演算 (svgの移動は変換行列で管理) <polygon /> <path /> usvg lyon glam
+ PRでdevlogみたいな独り言書くの楽しかった https://github.com/Cactice/salvage-guppies/pull/29 + Rustのおかげで高校時代の夢を叶えられた C++より何倍も進捗を出せた + ゴミライブラリ作るの楽しいな 感想