[workspace] members = [ "desktop", ] resolver = "2" [workspace.dependencies] # Workspace dependencies rustc-hash = "2.0" bytemuck = { version = "1.13", features = ["derive"] } 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" cef = "138.5.0" include_dir = "0.7.4" env_logger = "0.11" log = "0.4" bitflags = { version = "2.4", features = ["serde"] } ctor = "0.2" convert_case = "0.7" derivative = "2.2" thiserror = "2" anyhow = "1.0" proc-macro2 = { version = "1", features = [ "span-locations" ] } quote = "1.0" axum = "0.8" chrono = "0.4" ron = "0.8" fastnoise-lite = "1.1" wgpu = { version = "23", 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 = { version = "0.30", features = ["wayland", "rwh_06"] } url = "2.5" tokio = { version = "1.29", features = ["fs", "macros", "io-std", "rt"] } vello = { git = "https://github.com/linebender/vello.git", rev = "3275ec8" } # TODO switch back to stable when a release is made resvg = "0.44" usvg = "0.44" rand = { version = "0.9", default-features = false, features = ["std_rng"] } rand_chacha = "0.9" glam = { version = "0.29", default-features = false, features = ["serde", "scalar-math", "debug-glam-assert"] } base64 = "0.22" image = { version = "0.25", default-features = false, features = ["png", "jpeg", "bmp"] } parley = "0.5.0" skrifa = "0.32.0" pretty_assertions = "1.4.1" fern = { version = "0.7", features = ["colored"] } num_enum = "0.7" num-derive = "0.4" num-traits = { version = "0.2", default-features = false, features = ["i128"] } 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.11.0", features = ["serde"] } petgraph = { version = "0.7.1", default-features = false, features = [ "graphmap", ] } half = { version = "2.4.1", default-features = false, features = ["bytemuck", "serde"] } tinyvec = { version = "1", features = ["std"] } criterion = { version = "0.5", features = ["html_reports"] } iai-callgrind = { version = "0.12.3" } ndarray = "0.16.1" [profile.dev] opt-level = 1 [profile.dev.package] graphite-editor = { opt-level = 1 } graphene-core = { 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