[package] name = "photocraft-text" description = "Font database, text shaping/layout (parley) and text-layer rasterization" version.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true [lints] workspace = true [dependencies] photocraft-geom = { workspace = true } photocraft-color = { workspace = true } photocraft-raster = { workspace = true } photocraft-doc = { workspace = true } photocraft-psd = { workspace = true } # No `system` feature: fontique's system backend links fontconfig on Linux. We scan font # directories ourselves (native) and always register the bundled fonts (native + web). parley = { version = "0.11", default-features = false, features = ["std"] } skrifa = "0.44" flate2 = { workspace = true } # ICU dictionary data for Japanese word boundaries and complex-script (Thai, Lao, Khmer, Burmese) # line breaking. Native only: the CJK dictionary alone is 3.8 MB of wasm, and the web build must # stay under Cloudflare's 25 MiB per-file cap (packaging/web/package.sh). The web build falls back # to the generic Unicode rules for those scripts. # Native only: the glyph rasteriser composites and converts its pixel buffers on all cores. [target.'cfg(not(target_arch = "wasm32"))'.dependencies] parley = { version = "0.11", default-features = false, features = ["std", "complex-scripts"] } rayon = { workspace = true } # macOS only: the `system` feature adds fontique's Core Text backend, which lists every font the # system offers wherever its file lives (fonts a font manager or Adobe Fonts activated, Office's # own, Apple's on-demand downloads). `fonts.rs` reads only its list of files and registers them # like the folder scan's, so our own collection keeps its behaviour (generic families, merging # installed faces into the bundled families). It uses no fontconfig, unlike `system` on Linux. [target.'cfg(target_os = "macos")'.dependencies] parley = { version = "0.11", default-features = false, features = ["std", "complex-scripts", "system"] } [build-dependencies] # Deflates the bundled fonts (build.rs); `flate2` above inflates them. flate2 = { workspace = true }