mirror of
https://github.com/storytold/designcraft.git
synced 2026-10-24 18:26:50 -06:00
Merge main8dff7ecdb0into the original reader head4b7e4aaab6, preserving both histories and their attribution. Keep main's placed-page crop/cache APIs, crop-aware raster sizing, linked-file reads and unrelated dependencies while retaining the shared reader's checked layered-export errors. Route main's added PDF bounds code and placed-PDF tests through craft-pdf. Correct the fetched-source notice to craft-libs 89dcbb3 and the transferred source snapshot to PdfCraft 7437bde, with asset provenance recorded separately. Add a regression for hidden-layer export with a placed TrimBox. This records unchanged treebf630f5252, validated locally on 2026-10-20: 13 PDF backend tests, 94 renderer tests, 16 WASM package checks and PDF test compilation to WASM passed. Seven PDF exports / ten pages match exact main in native PNGs, independent Poppler pixels and extracted text. Formatting, dependency, clippy, asset and layer checks passed; the lockfile did not drift. Full local CI is not green: native validation recorded 2,927 passes, two sandbox-denied listener binds and one unavailable GPU-adapter case. Five other listener-dependent tests were not attempted; five existing ignores remain. Runtime WASM was not executed without an available runner. These limits are preserved, and no builds or tests were rerun for this commit.
124 lines
5.3 KiB
TOML
124 lines
5.3 KiB
TOML
[workspace]
|
||
resolver = "3"
|
||
members = ["crates/*", "apps/*", "xtask"]
|
||
default-members = ["crates/*", "apps/designcraft", "apps/designcraft-cli", "xtask"]
|
||
|
||
[workspace.package]
|
||
version = "0.10.0"
|
||
edition = "2024"
|
||
license = "MIT OR Apache-2.0"
|
||
rust-version = "1.95"
|
||
repository = "https://github.com/storytold/designcraft"
|
||
|
||
[workspace.dependencies]
|
||
# Shared reader and writer; publish the immutable revision before this consumer.
|
||
craft-pdf = { git = "https://github.com/storytold/craft-libs", rev = "89dcbb3060377a26c99a6d80caa16084366704c4", version = "=0.1.0", default-features = false }
|
||
# internal
|
||
designcraft-geom = { path = "crates/geom" }
|
||
designcraft-color = { path = "crates/color" }
|
||
designcraft-doc = { path = "crates/doc" }
|
||
designcraft-fonts = { path = "crates/fonts" }
|
||
designcraft-compose = { path = "crates/compose" }
|
||
designcraft-images = { path = "crates/images" }
|
||
designcraft-render = { path = "crates/render" }
|
||
designcraft-pdf = { path = "crates/pdf" }
|
||
designcraft-idml = { path = "crates/idml" }
|
||
designcraft-epub = { path = "crates/epub" }
|
||
designcraft-pptx = { path = "crates/pptx" }
|
||
designcraft-textimport = { path = "crates/textimport" }
|
||
designcraft-format = { path = "crates/format" }
|
||
designcraft-tools = { path = "crates/tools" }
|
||
designcraft-engine = { path = "crates/engine" }
|
||
designcraft-ui-egui = { path = "crates/ui-egui" }
|
||
designcraft-mcp = { path = "crates/mcp" }
|
||
designcraft-testkit = { path = "crates/testkit" }
|
||
|
||
# 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-script = "0.5"
|
||
unicode-bidi-mirroring = "0.4"
|
||
unicode-segmentation = "1"
|
||
caseless = "0.2"
|
||
regex = { version = "1", default-features = false, features = ["std", "unicode", "perf"] }
|
||
fancy-regex = "0.19.2"
|
||
tempfile = "3"
|
||
same-file = "1.0.6"
|
||
|
||
# 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"] }
|
||
# CMYK TIFF samples for PDF export (`image` decodes them to RGB); the version `image` uses.
|
||
tiff = "0.11"
|
||
# SVG (same usvg as krilla-svg).
|
||
resvg = { version = "0.47", default-features = false, features = ["text"] }
|
||
krilla-svg = "=0.8.1"
|
||
# Boolean operations on Bézier paths (Pathfinder).
|
||
flo_curves = "0.8"
|
||
# QR codes (Object › Generate QR Code); MIT.
|
||
qrcodegen = "1.8"
|
||
quick-xml = "0.41"
|
||
zip = { version = "3", default-features = false, features = ["deflate"] }
|
||
# INDD/INDT → IDML conversion for File › Open: storytold/indd-utils, tracking its main branch
|
||
# (MIT OR Apache-2.0, no dependencies, builds for wasm).
|
||
indd = { git = "https://github.com/storytold/indd-utils", branch = "main" }
|
||
|
||
# Which paths stored in documents may be followed (craft-libs).
|
||
craft-docpath = { version = "0.1.0", git = "https://github.com/storytold/craft-libs", rev = "82a24b006eefa036b43c09a67fb9a3fbd17ffe63" }
|
||
# Atomic file replacement for saves and exports (craft-libs).
|
||
craft-atomic = { version = "0.1.0", git = "https://github.com/storytold/craft-libs", rev = "e9546e191dd62f2bc1d61eca45dbdc2f1b3c1d8e" }
|
||
# File › Print through the system print spooler (craft-libs).
|
||
craft-print = { version = "0.1.0", git = "https://github.com/storytold/craft-libs", rev = "d991bf6792f8ade99c51358bf3c1d902c8cd96b5" }
|
||
|
||
# ICC colour management: working spaces, transforms, black point compensation (craft-libs).
|
||
craft-cms = { version = "0.1.0", git = "https://github.com/storytold/craft-libs", rev = "e9546e191dd62f2bc1d61eca45dbdc2f1b3c1d8e" }
|
||
|
||
# ui
|
||
# Shared frontend components; keep this dependency above the engine boundary.
|
||
craft-ui = { version = "0.1.0", git = "https://github.com/storytold/craft-libs", rev = "5c874d51eeb3de70e735c8ce87a59a7dedd47675", features = ["serde"] }
|
||
egui = "0.36"
|
||
egui_extras = { version = "0.36", default-features = false, features = ["svg"] }
|
||
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"
|
||
|
||
[profile.dev.package."*"]
|
||
opt-level = 2
|
||
|
||
[profile.dev]
|
||
opt-level = 1
|
||
|
||
[profile.release]
|
||
opt-level = 3
|
||
lto = "thin"
|
||
codegen-units = 16
|
||
debug = 0
|
||
|
||
# Opt-in cancelable macOS termination on the pinned winit 0.30 line.
|
||
[patch.crates-io]
|
||
krilla = { git = "https://github.com/storytold/craft-libs", rev = "89dcbb3060377a26c99a6d80caa16084366704c4", version = "=0.8.2" }
|
||
winit = { git = "https://github.com/skylartaylor/winit.git", rev = "3d51077fd1a966f84df9ef287839dc84fd5b4ca7" }
|
||
hayro = { git = "https://github.com/storytold/craft-libs", rev = "89dcbb3060377a26c99a6d80caa16084366704c4", version = "=0.7.1" }
|
||
hayro-interpret = { git = "https://github.com/storytold/craft-libs", rev = "89dcbb3060377a26c99a6d80caa16084366704c4", version = "=0.7.0" }
|
||
hayro-syntax = { git = "https://github.com/storytold/craft-libs", rev = "89dcbb3060377a26c99a6d80caa16084366704c4", version = "=0.7.2" }
|
||
hayro-jbig2 = { git = "https://github.com/storytold/craft-libs", rev = "89dcbb3060377a26c99a6d80caa16084366704c4", version = "=0.3.0" }
|