[workspace] resolver = "3" members = ["crates/*"] [workspace.package] version = "0.3.1" edition = "2024" license = "Unlicense" homepage = "https://git.highenergymagic.org/guiduck" repository = "https://git.highenergymagic.org/guiduck" [workspace.dependencies] # Rendering vello = "0.9.0" wgpu = "29.0.4" # vello 0.9 requires wgpu ^29; do not take wgpu 30 until vello does peniko = "0.6.1" tiny-skia = "0.12.0" softbuffer = "0.4.8" skrifa = "0.42" # match vello 0.9's skrifa so font handling agrees across backends # Platform winit = "0.30.13" accesskit = "0.24.1" accesskit_winit = "0.33.1" smithay-clipboard = "0.7" # Layout and text taffy = "0.12.1" parley = "0.11.0" # Asset decoding. Default features off: the format list is the supported set, # not whatever the crate happens to ship, and it keeps the tree small. image = { version = "0.25", default-features = false, features = ["png", "jpeg"] } # Component compiler (the .gdc s-expression reader is hand-written in # guiduck-component-core; the macro crate is its only consumer needing these) quote = "1" proc-macro2 = "1" # Utility slotmap = "1" pollster = "0.4" # Widget registration: builtins and app widgets submit their runtime factory # (construct-fn + setter thunks) into one registry collected before main, so a # linked widget crate is available everywhere including dev mode. Only runtime # crates depend on it; the compiler (guiduck-component-core) stays dep-free. inventory = "0.3.24" # Desktop integration, Unix only: xdg-desktop-portal is a freedesktop thing, # so this dependency is target-gated and Windows/macOS never see it (their # file choosers are their own native APIs behind the same seam). # `zbus::blocking` over async-io: the portal call is one blocking round trip # on its own thread, so a full async runtime (which `ashpd` would bring in via # tokio) would be the heaviest dependency in the tree, to buy nothing. zbus = { version = "5", default-features = false, features = ["async-io", "blocking-api"] } # Hot reload notify = "8" # Testing insta = "1.48" trybuild = "1.0" # Workspace crates guiduck-scene = { path = "crates/guiduck-scene" } guiduck-render-vello = { path = "crates/guiduck-render-vello" } guiduck-render-tinyskia = { path = "crates/guiduck-render-tinyskia" } guiduck-signals = { path = "crates/guiduck-signals" } guiduck-core = { path = "crates/guiduck-core" } guiduck-component-core = { path = "crates/guiduck-component-core" } guiduck-component-macro = { path = "crates/guiduck-component-macro" } guiduck-component-rt = { path = "crates/guiduck-component-rt" } guiduck-app = { path = "crates/guiduck-app" } guiduck-widget-fixture = { path = "crates/guiduck-widget-fixture" } guiduck-markdown = { path = "crates/guiduck-markdown" }