mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-24 10:09:01 -06:00
New crate `lightcraft-heif` (a port of PhotoCraft's photocraft-heif): a thin, panic-guarded wrapper around heic-rs (pure Rust, pinned =0.1.1) - 8/10-bit, alpha, grid tiles, container irot/imir/clap, ICC/EXIF/XMP. `lightcraft-codecs` decodes HEIF behind its non-default `heif` feature (HEVC patents are the distributor's call, the same policy as PhotoCraft); the apps forward it. HEIC files stay recognised without the feature: opening one is a clear "isn't included in this build" error. Fuzz-found heic-rs panics arrive as regression fixtures (inline bytes, no media committed). Verified end-to-end on real iPhone HEICs (lightcraft-cli render, rotation and metadata correct). Note for reviewers: measured here, the engine currently ignores the decoded image's source-space matrix on export for ANY format (a true Display-P3 PNG round-trips unchanged); the ICC and space are carried for all codecs, so this inherits - and does not worsen - existing behaviour. Co-Authored-By: opencode <noreply@opencode.ai>
36 lines
1.2 KiB
TOML
36 lines
1.2 KiB
TOML
[package]
|
|
name = "lightcraft-cli"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
publish = false
|
|
description = "LightCraft command-line tool: headless render, command listing and the MCP server"
|
|
|
|
[[bin]]
|
|
name = "lightcraft-cli"
|
|
path = "src/main.rs"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
lightcraft-engine = { workspace = true }
|
|
lightcraft-sysmem = { workspace = true }
|
|
lightcraft-mcp = { workspace = true }
|
|
lightcraft-ui-egui = { workspace = true }
|
|
lightcraft-codecs = { workspace = true }
|
|
lightcraft-raster = { workspace = true }
|
|
lightcraft-merge = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
dhat = { workspace = true, optional = true }
|
|
|
|
[features]
|
|
# Heap profiling: `cargo run --release -p lightcraft-cli --features dhat-heap -- snapshot …` counts
|
|
# every allocation (live/peak bytes in `library.memory` / `ui.inspect`) and writes dhat-heap.json
|
|
# (open it in DHAT's viewer: allocation sites by bytes at the peak). Slows allocation-heavy work.
|
|
dhat-heap = ["dep:dhat"]
|
|
|
|
# Open HEIC/HEIF photos (the optional lightcraft-heif crate). Not default so distributors choose
|
|
# it; official builds (CI, packaging/, release) build with `--features heif`.
|
|
heif = ["lightcraft-codecs/heif"]
|