darkly 0.5.0

A GPU-native paint engine on wgpu: brushes, layers, blend modes, masks, selections, and undo.
Documentation
[package]
name = "darkly"
version = "0.5.0"
edition = "2021"
license.workspace = true
description = "A GPU-native paint engine on wgpu: brushes, layers, blend modes, masks, selections, and undo."
repository = "https://github.com/darkly-art/darkly"
homepage = "https://github.com/darkly-art/darkly"
readme = "README.md"
keywords = ["paint", "gpu", "webgpu", "graphics", "wgpu"]
categories = ["graphics", "rendering", "wasm"]

[features]
profile = []
# Enables blocking GPU readbacks, `gpu::test_utils`, and `*::test_readback_*`
# accessors. WebGPU/WASM deadlocks on these (see CLAUDE.md "No Blocking GPU
# Readbacks"); the feature exists so `cargo test` and the bench bins can opt
# in while production / WASM builds cannot reach the API at all.
testing = []

[dependencies]
wgpu = { workspace = true }
bytemuck = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml_ng = { workspace = true }
log = { workspace = true }
web-time = { workspace = true }
zip = { workspace = true }
image = { workspace = true }
png = { workspace = true }
quick-xml = { workspace = true }
base64 = { workspace = true }
thiserror = { workspace = true }
slotmap = { workspace = true }
smallvec = { workspace = true }
indexmap = { version = "2", features = ["serde"] }

[dev-dependencies]
pollster = "0.4"
naga = { version = "29.0", features = ["wgsl-in"] }
syn = { version = "2", features = ["visit", "full"] }

[[bin]]
name = "stroke_replay_bench"
required-features = ["testing"]

[[bin]]
name = "stroke_replay_matrix"
required-features = ["testing"]

[lints]
workspace = true