[workspace] members = [ "desktop", "desktop/wrapper", "desktop/embedded-resources", "desktop/bundle", "desktop/platform/linux", "desktop/platform/mac", "desktop/platform/win", "editor", "frontend/wasm", "libraries/dyn-any", "libraries/path-bool", "libraries/math-parser", "node-graph/gapplication-io", "node-graph/gbrush", "node-graph/gcore", "node-graph/gcore-shaders", "node-graph/gmath-nodes", "node-graph/gpath-bool", "node-graph/graph-craft", "node-graph/graphene-cli", "node-graph/graster-nodes", "node-graph/graster-nodes/shaders", "node-graph/graster-nodes/shaders/entrypoint", "node-graph/gstd", "node-graph/gsvg-renderer", "node-graph/interpreted-executor", "node-graph/node-macro", "node-graph/preprocessor", "node-graph/wgpu-executor", "proc-macros", ] default-members = [ "editor", "frontend/wasm", "libraries/dyn-any", "libraries/path-bool", "libraries/math-parser", "node-graph/gapplication-io", "node-graph/gbrush", "node-graph/gcore", "node-graph/gcore-shaders", "node-graph/graster-nodes/shaders", "node-graph/gmath-nodes", "node-graph/gpath-bool", "node-graph/graph-craft", "node-graph/graphene-cli", "node-graph/graster-nodes", "node-graph/gstd", "node-graph/gsvg-renderer", "node-graph/interpreted-executor", "node-graph/node-macro", "node-graph/preprocessor", "node-graph/wgpu-executor", # blocked by https://github.com/rust-lang/cargo/issues/15890 # "proc-macros", ] resolver = "2" [workspace.dependencies] # Local dependencies dyn-any = { path = "libraries/dyn-any", features = [ "derive", "glam", "reqwest", "log-bad-types", "rc", ] } preprocessor = { path = "node-graph/preprocessor" } math-parser = { path = "libraries/math-parser" } path-bool = { path = "libraries/path-bool" } graphene-application-io = { path = "node-graph/gapplication-io" } graphene-brush = { path = "node-graph/gbrush" } graphene-core = { path = "node-graph/gcore" } graphene-core-shaders = { path = "node-graph/gcore-shaders" } graphene-math-nodes = { path = "node-graph/gmath-nodes" } graphene-path-bool = { path = "node-graph/gpath-bool" } graph-craft = { path = "node-graph/graph-craft" } graphene-raster-nodes = { path = "node-graph/graster-nodes" } graphene-std = { path = "node-graph/gstd" } graphene-svg-renderer = { path = "node-graph/gsvg-renderer" } interpreted-executor = { path = "node-graph/interpreted-executor" } node-macro = { path = "node-graph/node-macro" } wgpu-executor = { path = "node-graph/wgpu-executor" } graphite-proc-macros = { path = "proc-macros" } # Workspace dependencies rustc-hash = "2.0" bytemuck = { version = "1.13", features = ["derive", "min_const_generics"] } serde = { version = "1.0", features = ["derive", "rc"] } serde_json = "1.0" serde-wasm-bindgen = "0.6" reqwest = { version = "0.12", features = ["blocking", "rustls-tls", "json"] } futures = "0.3" env_logger = "0.11" log = "0.4" bitflags = { version = "2.4", features = ["serde"] } ctor = "0.2" convert_case = "0.8" derivative = "2.2" thiserror = "2" anyhow = "1.0" proc-macro2 = { version = "1", features = ["span-locations"] } quote = "1.0" chrono = "0.4" ron = "0.11" fastnoise-lite = "1.1" wgpu = { version = "27.0", features = [ # We don't have wgpu on multiple threads (yet) https://github.com/gfx-rs/wgpu/blob/trunk/CHANGELOG.md#wgpu-types-now-send-sync-on-wasm "fragile-send-sync-non-atomic-wasm", "spirv", "strict_asserts", ] } once_cell = "1.13" # Remove when `core::cell::LazyCell` () is stabilized in Rust 1.80 and we bump our MSRV wasm-bindgen = "=0.2.100" # NOTICE: ensure this stays in sync with the `wasm-bindgen-cli` version in `website/content/volunteer/guide/project-setup/_index.md`. We pin this version because wasm-bindgen upgrades may break various things. wasm-bindgen-futures = "0.4" js-sys = "=0.3.77" web-sys = { version = "=0.3.77", features = [ "Document", "DomRect", "Element", "HtmlCanvasElement", "CanvasRenderingContext2d", "CanvasPattern", "OffscreenCanvas", "OffscreenCanvasRenderingContext2d", "TextMetrics", "Window", "IdleRequestOptions", "ImageData", "Navigator", "Gpu", "HtmlImageElement", "ImageBitmapRenderingContext", ] } winit = { git = "https://github.com/rust-windowing/winit.git" } keyboard-types = "0.8" url = "2.5" tokio = { version = "1.29", features = ["fs", "macros", "io-std", "rt"] } vello = { git = "https://github.com/linebender/vello" } vello_encoding = { git = "https://github.com/linebender/vello" } resvg = "0.45" usvg = "0.45" rand = { version = "0.9", default-features = false, features = ["std_rng"] } rand_chacha = "0.9" glam = { version = "0.29", default-features = false, features = [ "nostd-libm", "scalar-math", "bytemuck", ] } base64 = "0.22" image = { version = "0.25", default-features = false, features = [ "png", "jpeg", "bmp", ] } parley = "0.5" skrifa = "0.36" pretty_assertions = "1.4" fern = { version = "0.7", features = ["colored"] } num_enum = { version = "0.7", default-features = false } num-derive = "0.4" num-traits = { version = "0.2", default-features = false, features = ["libm"] } specta = { version = "2.0.0-rc.22", features = [ "glam", "derive", # "typescript", ] } syn = { version = "2.0", default-features = false, features = [ "full", "derive", "parsing", "printing", "visit-mut", "visit", "clone-impls", "extra-traits", "proc-macro", ] } kurbo = { version = "0.12", features = ["serde"] } lyon_geom = "1.0" petgraph = { version = "0.7", default-features = false, features = ["graphmap"] } half = { version = "2.4", default-features = false, features = ["bytemuck"] } tinyvec = { version = "1", features = ["std"] } criterion = { version = "0.7", features = ["html_reports"] } iai-callgrind = { version = "0.16" } ndarray = "0.16" strum = { version = "0.27", features = ["derive"] } dirs = "6.0" cef = { version = "141", features = ["accelerated_osr"] } cef-dll-sys = "141" include_dir = "0.7" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tracing = "0.1" rfd = "0.15" open = "5.3" polycool = "0.4" spin = "0.10" clap = "4.5" spirv-std = { git = "https://github.com/Firestar99/rust-gpu-new", rev = "c12f216121820580731440ee79ebc7403d6ea04f", features = ["bytemuck"] } cargo-gpu = { git = "https://github.com/Firestar99/cargo-gpu", rev = "3952a22d16edbd38689f3a876e417899f21e1fe7", default-features = false } [workspace.lints.rust] unexpected_cfgs = { level = "allow", check-cfg = ['cfg(target_arch, values("spirv"))'] } [profile.dev] opt-level = 1 [profile.dev.package] graphite-editor = { opt-level = 1 } graphene-core-shaders = { opt-level = 1 } graphene-std = { opt-level = 1 } interpreted-executor = { opt-level = 1 } # This is a mitigation for https://github.com/rustwasm/wasm-pack/issues/981 which is needed because the node_registry function is too large graphite-proc-macros = { opt-level = 1 } image = { opt-level = 2 } rustc-hash = { opt-level = 3 } serde_derive = { opt-level = 1 } specta-macros = { opt-level = 1 } syn = { opt-level = 1 } [profile.release] lto = "thin" debug = true [profile.profiling] inherits = "release" debug = true [patch.crates-io] # Force cargo to use only one version of the dpi crate (vendoring breaks without this) dpi = { git = "https://github.com/rust-windowing/winit.git" }