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製GUIライブラリ
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yuya Kanai
October 20, 2023
0
380
Rust製GUIライブラリ
Yuya Kanai
October 20, 2023
Tweet
Share
Featured
See All Featured
Accessibility Awareness
sabderemane
0
51
Believing is Seeing
oripsolob
1
55
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
62
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Navigating Team Friction
lara
192
16k
Discover your Explorer Soul
emna__ayadi
2
1.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
830
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
200
30 Presentation Tips
portentint
PRO
1
220
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
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++より何倍も進捗を出せた + ゴミライブラリ作るの楽しいな 感想