[package]
name = "takumi"
version = "2.0.2"
edition = "2024"
license = "MIT OR Apache-2.0"
description = "Render UI component trees to images."
keywords = ["react", "image", "css", "flexbox"]
repository = "https://github.com/kane50613/takumi"
homepage = "https://takumi.kane.tw"
readme = "README.md"
rust-version = "1.91"
autobenches = false

[dependencies.takumi-core]
path = "../takumi-core"
version = "0.3.2"
default-features = false

[dependencies.takumi-raster]
path = "../takumi-raster"
version = "0.2.3"
default-features = false
optional = true

[dependencies.takumi-svg]
path = "../takumi-svg"
version = "0.1.4"
default-features = false
optional = true

[dependencies.takumi-html]
path = "../takumi-html"
version = "0.1.4"
default-features = false
optional = true

[features]
default = ["raster-backend", "woff2", "woff", "svg-source", "rayon"]
raster-backend = ["dep:takumi-raster"]
# Expose the backend crates wholesale under `takumi::unstable`. Everything behind
# this flag is implementation surface with no semver guarantee.
unstable = []
svg-source = ["takumi-core/svg", "takumi-raster?/svg"]
svg-backend = ["dep:takumi-svg"]
woff2 = ["takumi-core/woff2"]
woff = ["takumi-core/woff"]
rayon = ["takumi-raster?/rayon"]
from-html = ["dep:takumi-html"]

[dev-dependencies]
criterion.workspace = true
parley.workspace = true
rayon.workspace = true
resvg = "0.47"
serde_json.workspace = true

[dev-dependencies.image]
workspace = true
features = ["png", "webp"]

[dev-dependencies.takumi-svg]
path = "../takumi-svg"

[lints]
workspace = true

[package.metadata.docs.rs]
all-features = true

[[bench]]
name = "canvas"
harness = false

[[bench]]
name = "effects"
harness = false

[[bench]]
name = "encode"
harness = false

[[bench]]
name = "fixtures"
harness = false

[[bench]]
name = "gradient"
harness = false

[[bench]]
name = "svg"
harness = false

[[bench]]
name = "text"
harness = false


