deepcl-common 0.7.0

Common crate for DeepCL
Documentation
[package]
authors = [
    "Dilshod Tadjibaev (@antimora)",
    "Nathaniel Simard (@nathanielsimard)",
]
categories = ["science", "mathematics", "algorithms"]
description = "Common crate for DeepCL"
edition.workspace = true
keywords = ["gpu", "cuda", "wgpu"]
license.workspace = true
name = "deepcl-common"
readme.workspace = true
repository = "https://github.com/kothagpt/deepcode/tree/main/crates/deepcl-common"
version.workspace = true

[features]
cache = ["std", "serde_json", "dirs", "sanitize-filename"]
default = ["std"]
fp4 = ["float4"]
fp8 = ["float8"]
serde = ["serde_bytes"]
std = ["rand/std", "futures-lite", "rand/thread_rng", "serde_json?/std"]


[dependencies]
# ** Please make sure all dependencies support no_std when std is disabled **
bytemuck = { workspace = true, features = ["derive"] }
derive-new = { workspace = true }
derive_more = { workspace = true, features = [
    "not",
    "add",
    "mul",
    "add_assign",
    "mul_assign",
    "display",
] }
float4 = { workspace = true, optional = true }
float8 = { workspace = true, optional = true }
half = { workspace = true }
log = { workspace = true }
num-traits = { workspace = true }
rand = { workspace = true }
serde = { workspace = true }
spin = { workspace = true } # using in place of use std::sync::Mutex;

cfg-if = { workspace = true }

# Cache
dirs = { workspace = true, optional = true }
hashbrown = { workspace = true }
sanitize-filename = { workspace = true, optional = true }
serde_bytes = { workspace = true, features = ["alloc"], optional = true }
serde_json = { workspace = true, features = ["alloc"], optional = true }

# Only activate futures for std env
embassy-futures = { version = "0.1.1" }
futures-lite = { workspace = true, features = [
    "std",
], default-features = false, optional = true }

[target.'cfg(target_has_atomic = "ptr")'.dependencies]
spin = { workspace = true, features = ["mutex", "spin_mutex"] }

[target.'cfg(not(target_has_atomic = "ptr"))'.dependencies]
portable-atomic-util = { workspace = true }
portable-atomic = { workspace = true }
spin = { workspace = true, features = [
    "mutex",
    "spin_mutex",
    "portable_atomic",
] }

[target.'cfg(target_family = "wasm")'.dependencies]
wasm-bindgen-futures = { workspace = true }

# Default dependency for all targets
[target.'cfg(not(target_os = "none"))'.dependencies]
web-time = { workspace = true }

# Only for true no_std / embedded targets
[target.'cfg(target_os = "none")'.dependencies]
embassy-time = { workspace = true }

[build-dependencies]
cfg_aliases = { workspace = true }

[dev-dependencies]
bincode = { workspace = true }
dashmap = { workspace = true }