mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-07 18:03:32 +00:00
Opening a .ai or a PDF read and checked the whole file up to five times: for the document it carries, for whether it holds the editor's private data, for the import, for the editor's copy and for its File Info. Each pass parses the file and walks every object, about 190 ms on a 15 MB .ai. - vectorcraft_pdf::open_pdf reads and checks the file once, on the import's deep-stack thread, and import_opened imports pages from that reading. document.open takes the carried document, the page count, the editor's copy and the File Info from it. The editor's copy is read after the page import and only when the file is not restored from a carried document; so is the File Info. - A .ai saved without PDF compatibility opened with pages that name every page reads its editor's copy from the same reading. - document.pdfInfo reads the file once for its pages and the thumbnail. - The Open and Place dialogs read the file once to decide whether to ask for pages, instead of twice. A file whose PDF part fails the check still reads its editing data separately, as before.
69 lines
2.6 KiB
TOML
69 lines
2.6 KiB
TOML
[package]
|
|
name = "vectorcraft-engine"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "VectorCraft engine: sessions, history, selection, the command registry"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[features]
|
|
default = ["bundled-fonts"]
|
|
# The fonts vectorcraft-text bundles (see its `bundled-fonts`). Embedders that supply every font at
|
|
# run time (`vectorcraft_text::FontDb::add_font`) build with `default-features = false`.
|
|
bundled-fonts = ["vectorcraft-text/bundled-fonts"]
|
|
|
|
[dependencies]
|
|
# Which paths stored in documents may be opened.
|
|
craft-docpath = { workspace = true }
|
|
vectorcraft-geom = { workspace = true }
|
|
vectorcraft-color = { workspace = true }
|
|
vectorcraft-doc = { workspace = true }
|
|
vectorcraft-tools = { workspace = true }
|
|
vectorcraft-text = { workspace = true }
|
|
vectorcraft-render = { workspace = true }
|
|
vectorcraft-pathops = { workspace = true }
|
|
vectorcraft-brush = { workspace = true }
|
|
vectorcraft-trace = { workspace = true }
|
|
vectorcraft-svg = { workspace = true }
|
|
vectorcraft-format = { workspace = true }
|
|
vectorcraft-pdf = { workspace = true }
|
|
vectorcraft-cad = { workspace = true }
|
|
vectorcraft-eps = { workspace = true }
|
|
vectorcraft-metafile = { workspace = true }
|
|
vectorcraft-plugins = { workspace = true }
|
|
vectorcraft-affinity = { workspace = true }
|
|
vectorcraft-scriptcheck = { workspace = true }
|
|
image = { workspace = true }
|
|
hayro-jpeg2000 = { version = "=0.3.5", default-features = false, features = ["std", "simd"] }
|
|
flate2 = { workspace = true }
|
|
chrono = { workspace = true }
|
|
# The XML parts of Word documents placed as type (place/docx.rs).
|
|
roxmltree = "0.21"
|
|
# The compound file that holds a Word 97-2003 document placed as type (place/doc.rs).
|
|
cfb = "0.15"
|
|
kurbo = { workspace = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
log = { workspace = true }
|
|
|
|
# Whether a recovery area folder is this account's own (`FolderStore::own_area`). Already in
|
|
# Cargo.lock (tempfile, ui-egui), so this adds no new crate.
|
|
[target.'cfg(unix)'.dependencies]
|
|
rustix = { workspace = true, features = ["std", "process"] }
|
|
|
|
[dev-dependencies]
|
|
vectorcraft-affinity = { workspace = true, features = ["synth"] }
|
|
crc32fast = { workspace = true }
|
|
vectorcraft-testkit = { workspace = true }
|
|
proptest = { workspace = true }
|
|
# A variable font built in code (no font file is committed).
|
|
vectorcraft-text = { workspace = true, features = ["test-fonts"] }
|
|
# How many times an open reads a PDF.
|
|
vectorcraft-pdf = { workspace = true, features = ["read-count"] }
|
|
wat = { workspace = true }
|
|
# Zstandard streams for the Illustrator editing data fuzz tests.
|
|
ruzstd = { workspace = true }
|