[workspace] resolver = "3" members = ["crates/*", "apps/*", "xtask"] default-members = ["crates/*", "apps/deckcraft", "apps/deckcraft-cli"] [workspace.package] version = "0.6.1" edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.90" repository = "https://github.com/storytold/deckcraft" [workspace.dependencies] # internal deckcraft-geom = { path = "crates/geom" } deckcraft-color = { path = "crates/color" } deckcraft-model = { path = "crates/model" } deckcraft-fonts = { path = "crates/fonts" } deckcraft-text = { path = "crates/text" } deckcraft-render = { path = "crates/render" } deckcraft-pdf = { path = "crates/pdf" } deckcraft-pptx = { path = "crates/pptx" } deckcraft-format = { path = "crates/format" } deckcraft-anim = { path = "crates/anim" } deckcraft-engine = { path = "crates/engine" } deckcraft-mcp = { path = "crates/mcp" } deckcraft-ui-egui = { path = "crates/ui-egui" } deckcraft-media = { path = "crates/media" } # codecs (ported from FilmCraft, same owner and licence) deckcraft-bitstream = { path = "crates/bitstream" } deckcraft-h264 = { path = "crates/h264" } deckcraft-hevc = { path = "crates/hevc" } deckcraft-vp9 = { path = "crates/vp9" } deckcraft-av1 = { path = "crates/av1" } deckcraft-isobmff = { path = "crates/isobmff" } deckcraft-matroska = { path = "crates/matroska" } deckcraft-ogg = { path = "crates/ogg" } deckcraft-opus = { path = "crates/opus" } # foundation kurbo = { version = "0.13", features = ["serde"] } thiserror = "2" serde = { version = "1", features = ["derive", "rc"] } serde_json = { version = "1", features = ["float_roundtrip"] } log = "0.4" proptest = "1" rayon = "1" unicode-bidi = "0.3" unicode-segmentation = "1" unicode-linebreak = "0.1" chrono = { version = "0.4", default-features = false, features = ["clock"] } # text / rendering / formats skrifa = "0.47" harfrust = "0.13" vello_cpu = "0.2" vello_common = { version = "0.2", default-features = false } image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp", "gif", "tiff", "bmp"] } krilla = { version = "0.8", features = ["pdf"] } i_overlay = "9" quick-xml = "0.38" zip = { version = "3", default-features = false, features = ["deflate"] } # ui egui = "0.36" egui_extras = { version = "0.36", default-features = false } eframe = { version = "0.36", default-features = false } egui_kittest = "0.36" rfd = "0.17" arboard = { version = "3.6", default-features = false } [workspace.lints.rust] unsafe_code = "forbid" [workspace.lints.clippy] dbg_macro = "warn" todo = "warn" too_many_arguments = "allow" type_complexity = "allow" self_named_constructors = "allow" large_enum_variant = "allow" result_large_err = "allow" [profile.dev.package."*"] opt-level = 2 [profile.dev] opt-level = 1 [profile.release] opt-level = 3 lto = "thin" codegen-units = 16 debug = 0