tawasuyu/llimphi
Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.
chore: refresco desde el monorepo — vello 0.9 / wgpu 29, 120 miembros
1[package]
2name = "llimphi-layout"
3version.workspace = true
4edition.workspace = true
5license.workspace = true
6authors.workspace = true
7publish.workspace = true
8
9description = "Layout engine for llimphi (Flexbox + CSS Grid via taffy)."
10repository.workspace = true
11[dependencies]
12# taffy declarado DIRECTO y no `{ workspace = true }`: apagar `default-features`
13# desde un miembro no tiene efecto si el workspace no lo declaró así (cargo lo
14# avisa y lo ignora). Y apagarlo es justamente el punto — el `default` de taffy
15# arrastra `std`, que es lo único que ataba este crate a un sistema operativo.
16#
17# Se conservan las demás features del default (grid, block_layout, calc,
18# content_size): la meta es soltar `std`, no recortar capacidades de layout por
19# la ventana.
20#
21# La excepción es `detailed_layout_info`, y no es una elección de diseño sino un
22# BUG DE TAFFY 0.9.2: con esa feature + `grid` y sin `std`, su propio código usa
23# `Box` sin importar `alloc::boxed::Box` y no compila
24# (`tree/layout.rs:354`, `tree/taffy_tree.rs:511`). Nadie en el repo consume
25# `DetailedLayoutInfo` —se verificó por grep sobre todos los cuadrantes—, así
26# que apagarla no cuesta nada. Si algún día hace falta, hay que arreglar taffy
27# aguas arriba, no reactivarla acá.
28taffy = { version = "0.12", default-features = false, features = [
29 "alloc",
30 "taffy_tree",
31 "flexbox",
32 "grid",
33 "block_layout",
34 "calc",
35 "content_size",
36] }
37# `HashMap` sin sistema operativo. Es el mismo mapa que usa la stdlib por
38# dentro — de hecho `std::collections::HashMap` ES hashbrown con otra cara.
39hashbrown = { version = "0.17", default-features = false, features = ["default-hasher", "inline-more"] }
40
41[dev-dependencies]
42llimphi-hal = { path = "../llimphi-hal", version = "0.1.0" }
43llimphi-raster = { path = "../llimphi-raster", version = "0.1.0" }
44pollster = { workspace = true }
45
46[[example]]
47name = "layout_panels"
48path = "examples/layout_panels.rs"