[workspace] resolver = "3" members = ["crates/*"] default-members = ["crates/*"] [workspace.package] version = "0.1.0" edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.95" repository = "https://github.com/storytold/effectcraft" [workspace.dependencies] # internal effectcraft-time = { path = "crates/time" } effectcraft-geom = { path = "crates/geom" } effectcraft-color = { path = "crates/color" } effectcraft-raster = { path = "crates/raster" } effectcraft-path = { path = "crates/path" } effectcraft-keyframe = { path = "crates/keyframe" } effectcraft-project = { path = "crates/project" } effectcraft-text = { path = "crates/text" } effectcraft-effects = { path = "crates/effects" } effectcraft-render = { path = "crates/render" } effectcraft-engine = { path = "crates/engine" } effectcraft-ui-egui = { path = "crates/ui-egui" } effectcraft-automation = { path = "crates/automation" } # foundation thiserror = "2" serde = { version = "1", features = ["derive", "rc"] } serde_json = "1" log = "0.4" rayon = "1" proptest = "1" # geometry / fonts kurbo = { version = "0.13", features = ["serde"] } tiny-skia = { version = "0.12", default-features = false, features = ["std", "simd"] } skrifa = { version = "0.44", default-features = false, features = ["std"] } harfrust = { version = "0.12", default-features = false, features = ["std"] } image = { version = "0.25", default-features = false, features = ["png", "jpeg"] } # ui egui = "0.36" eframe = { version = "0.36", default-features = false } egui_kittest = "0.36" rfd = "0.17" [workspace.lints.rust] unsafe_code = "deny" [workspace.lints.clippy] dbg_macro = "warn" todo = "warn" too_many_arguments = "allow" needless_range_loop = "allow" type_complexity = "allow" [profile.dev.package."*"] opt-level = 2 [profile.dev] opt-level = 1 # Pixel hot loops: keep debug builds interactive. [profile.dev.package.effectcraft-raster] opt-level = 3 [profile.dev.package.effectcraft-render] opt-level = 3 [profile.dev.package.effectcraft-effects] opt-level = 3 [profile.dev.package.effectcraft-path] opt-level = 3 [profile.release] lto = "thin" codegen-units = 1