[package]
authors = [
    "nathanielsimard <nathaniel.simard.42@gmail.com>",
    "wingertge <wingertge@gmail.com>",
]
categories = ["science"]
description = "Vision processing operations for burn tensors"
documentation = "https://docs.rs/burn-vision"
edition.workspace = true
keywords = ["deep-learning", "machine-learning", "gpu"]
license.workspace = true
name = "burn-vision"
readme.workspace = true
repository = "https://github.com/tracel-ai/burn/tree/main/crates/burn-vision"
version.workspace = true

[lints]
workspace = true


[features]
default = ["ndarray", "cubecl-backend", "fusion", "std"]
std = ["aligned-vec/std"]
tracing = [
    "burn-cubecl?/tracing",
    "burn-fusion?/tracing",
    "burn-ir/tracing",
    "burn-ndarray?/tracing",
    "burn-tch?/tracing",
    "burn-tensor/tracing",
    "cubecl/tracing",
]

cubecl-backend = ["cubecl", "burn-cubecl"]
fusion = ["burn-fusion", "burn-cuda/fusion", "burn-wgpu/fusion"]
ndarray = ["burn-ndarray"]
tch = ["burn-tch"]

# Test features
test-cpu = []
test-cuda = ["cubecl-backend", ]
test-wgpu = ["cubecl-backend", ]
test-vulkan = ["burn-wgpu/vulkan", "test-wgpu"]
test-metal = ["burn-wgpu/metal", "test-wgpu"]

[dependencies]
aligned-vec = { version = "0.6", default-features = false }
bon = { workspace = true }
burn-cubecl = { path = "../burn-cubecl", version = "=0.21.0-pre.2", optional = true }
burn-fusion = { path = "../burn-fusion", version = "=0.21.0-pre.2", optional = true }
burn-ir = { path = "../burn-ir", version = "=0.21.0-pre.2" }
burn-ndarray = { path = "../burn-ndarray", version = "=0.21.0-pre.2", optional = true }
burn-tch = { path = "../burn-tch", version = "=0.21.0-pre.2", optional = true }
burn-tensor = { path = "../burn-tensor", version = "=0.21.0-pre.2" }
burn-tensor-testgen = { path = "../burn-tensor-testgen", version = "=0.21.0-pre.2", optional = true }
bytemuck = { workspace = true }
cubecl = { workspace = true, optional = true }
derive-new = { workspace = true }
half = { workspace = true }
image = { version = "0.25" }
macerator = { workspace = true }
ndarray = { workspace = true }
num-traits = { workspace = true }
paste = { workspace = true }
serde = { workspace = true }

[dev-dependencies]
burn-cuda = { path = "../burn-cuda", version = "=0.21.0-pre.2", default-features = false }
burn-ndarray = { path = "../burn-ndarray", version = "=0.21.0-pre.2" }
burn-wgpu = { path = "../burn-wgpu", version = "=0.21.0-pre.2", default-features = false }
cubecl = { workspace = true }
