SecondHalfGames / yakui

yakui is a declarative Rust UI library for games
Apache License 2.0
222 stars 18 forks source link

Update dependencies and remove palette (2x improvement in compile time) #143

Closed Uriopass closed 3 months ago

Uriopass commented 5 months ago

Compile time improvements from quick testing:

cargo clean && cargo build -p yakui

Before: ~6.2s
After:  ~3.4s
old tree ``` > cargo tree -p yakui -e normal yakui v0.2.0 (/home/pdouady/repos/yakui/crates/yakui) ├── yakui-core v0.2.0 (/home/pdouady/repos/yakui/crates/yakui-core) │ ├── anymap v0.12.1 │ ├── bitflags v1.3.2 │ ├── glam v0.24.2 │ ├── keyboard-types v0.6.2 │ │ └── bitflags v1.3.2 │ ├── log v0.4.20 │ ├── palette v0.7.4 │ │ ├── approx v0.5.1 │ │ │ └── num-traits v0.2.17 │ │ ├── fast-srgb8 v1.0.0 │ │ ├── palette_derive v0.7.4 (proc-macro) │ │ │ ├── proc-macro2 v1.0.76 │ │ │ │ └── unicode-ident v1.0.12 │ │ │ ├── quote v1.0.35 │ │ │ │ └── proc-macro2 v1.0.76 (*) │ │ │ └── syn v2.0.48 │ │ │ ├── proc-macro2 v1.0.76 (*) │ │ │ ├── quote v1.0.35 (*) │ │ │ └── unicode-ident v1.0.12 │ │ └── phf v0.11.2 │ │ ├── phf_macros v0.11.2 (proc-macro) │ │ │ ├── phf_generator v0.11.2 │ │ │ │ ├── phf_shared v0.11.2 │ │ │ │ │ └── siphasher v0.3.11 │ │ │ │ └── rand v0.8.5 │ │ │ │ └── rand_core v0.6.4 │ │ │ ├── phf_shared v0.11.2 (*) │ │ │ ├── proc-macro2 v1.0.76 (*) │ │ │ ├── quote v1.0.35 (*) │ │ │ └── syn v2.0.48 (*) │ │ └── phf_shared v0.11.2 (*) │ ├── profiling v1.0.13 │ │ └── profiling-procmacros v1.0.13 (proc-macro) │ │ ├── quote v1.0.35 (*) │ │ └── syn v2.0.48 (*) │ ├── smallvec v1.12.0 │ └── thunderdome v0.6.1 └── yakui-widgets v0.2.0 (/home/pdouady/repos/yakui/crates/yakui-widgets) ├── fontdue v0.7.3 │ ├── hashbrown v0.13.2 │ │ └── ahash v0.8.7 │ │ ├── cfg-if v1.0.0 │ │ ├── once_cell v1.19.0 │ │ └── zerocopy v0.7.32 │ └── ttf-parser v0.15.2 ├── smol_str v0.1.24 │ └── serde v1.0.195 ├── thunderdome v0.6.1 └── yakui-core v0.2.0 (/home/pdouady/repos/yakui/crates/yakui-core) (*) ```
new tree ``` > cargo tree -p yakui -e normal yakui v0.2.0 (/home/pdouady/repos/yakui/crates/yakui) ├── yakui-core v0.2.0 (/home/pdouady/repos/yakui/crates/yakui-core) │ ├── anymap v0.12.1 │ ├── bitflags v2.4.2 │ ├── fast-srgb8 v1.0.0 │ ├── glam v0.25.0 │ ├── keyboard-types v0.7.0 │ │ └── bitflags v2.4.2 │ ├── log v0.4.20 │ ├── profiling v1.0.13 │ │ └── profiling-procmacros v1.0.13 (proc-macro) │ │ ├── quote v1.0.35 │ │ │ └── proc-macro2 v1.0.76 │ │ │ └── unicode-ident v1.0.12 │ │ └── syn v2.0.48 │ │ ├── proc-macro2 v1.0.76 (*) │ │ ├── quote v1.0.35 (*) │ │ └── unicode-ident v1.0.12 │ ├── smallvec v1.12.0 │ └── thunderdome v0.6.1 └── yakui-widgets v0.2.0 (/home/pdouady/repos/yakui/crates/yakui-widgets) ├── fontdue v0.7.3 │ ├── hashbrown v0.13.2 │ │ └── ahash v0.8.7 │ │ ├── cfg-if v1.0.0 │ │ ├── once_cell v1.19.0 │ │ └── zerocopy v0.7.32 │ └── ttf-parser v0.15.2 ├── smol_str v0.1.24 │ └── serde v1.0.195 ├── thunderdome v0.6.1 └── yakui-core v0.2.0 (/home/pdouady/repos/yakui/crates/yakui-core) (*) ```