# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.95"
name = "cu29-runtime"
version = "1.0.0-rc1"
authors = ["Guillaume Binet <gbin@gootz.net>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Copper Runtime Runtime crate. Copper is an engine for robotics."
homepage = "https://github.com/copper-project"
documentation = "https://docs.rs/cu29"
readme = "README.md"
keywords = [
    "robotics",
    "middleware",
    "copper",
    "real-time",
]
categories = ["science::robotics"]
license = "Apache-2.0"
repository = "https://github.com/copper-project/copper-rs"
resolver = "2"

[features]
async-cl-io = ["std"]
bridge-sim-callbacks = []
cuda = ["dep:cudarc"]
default = ["std"]
defmt = [
    "cu29-log/defmt",
    "cu29-log-derive/defmt",
    "cu29-traits/defmt",
]
high-precision-limiter = ["std"]
macro_debug = []
memory_monitoring = []
mmap-fsync = [
    "std",
    "cu29-unifiedlog/mmap-fsync",
]
parallel-rt = [
    "std",
    "dep:rtrb",
]
reflect = [
    "dep:bevy_reflect",
    "cu29-traits/reflect",
]
remote-debug = [
    "std",
    "reflect",
    "dep:cu29-units",
    "dep:serde_json",
    "dep:zenoh",
    "dep:minicbor-serde",
    "cu29-units/reflect",
]
std = [
    "dep:clap",
    "dep:rayon",
    "dep:tempfile",
    "dep:object-pool",
    "dep:memmap2",
    "dep:layout",
    "dep:svg",
    "dep:serde_json",
    "ron/std",
    "portable-atomic/std",
    "portable-atomic/require-cas",
    "cu29-clock/std",
    "cu29-log/std",
    "cu29-log-runtime/std",
    "cu29-traits/std",
    "cu29-unifiedlog/std",
    "cu29-value/std",
    "petgraph/std",
]
sysclock-perf = ["std"]

[lib]
name = "cu29_runtime"
path = "src/lib.rs"

[[bin]]
name = "cu29-rendercfg"
path = "src/rendercfg.rs"
required-features = ["std"]

[[test]]
name = "bridge_empty_tx"
path = "tests/bridge_empty_tx.rs"

[[test]]
name = "includes"
path = "tests/includes.rs"

[[test]]
name = "loopback"
path = "tests/loopback.rs"

[[test]]
name = "missions"
path = "tests/missions.rs"

[[test]]
name = "modular_config"
path = "tests/modular_config.rs"

[[test]]
name = "payload_test"
path = "tests/payload_test.rs"

[[test]]
name = "replay_primitives"
path = "tests/replay_primitives.rs"

[[test]]
name = "sim_bridge"
path = "tests/sim_bridge.rs"

[dependencies.arrayvec]
version = "0.7"
features = ["serde"]
default-features = false

[dependencies.bevy_reflect]
version = "0.18.0"
features = ["auto_register_static"]
optional = true
default-features = false

[dependencies.bincode]
version = "2.0"
features = [
    "derive",
    "alloc",
]
default-features = false
package = "cu-bincode"

[dependencies.clap]
version = "4.5"
features = [
    "std",
    "derive",
    "help",
    "usage",
    "error-context",
]
optional = true
default-features = false

[dependencies.compact_str]
version = "0.9"
features = ["serde"]
default-features = false

[dependencies.cu29-clock]
version = "1.0.0-rc1"
default-features = false

[dependencies.cu29-log]
version = "1.0.0-rc1"
default-features = false

[dependencies.cu29-log-derive]
version = "1.0.0-rc1"
default-features = false

[dependencies.cu29-log-runtime]
version = "1.0.0-rc1"
default-features = false

[dependencies.cu29-reflect-derive]
version = "1.0.0-rc1"

[dependencies.cu29-traits]
version = "1.0.0-rc1"
default-features = false

[dependencies.cu29-unifiedlog]
version = "1.0.0-rc1"
features = ["compact"]
default-features = false

[dependencies.cu29-units]
version = "1.0.0-rc1"
optional = true

[dependencies.cu29-value]
version = "1.0.0-rc1"
default-features = false

[dependencies.erased-serde]
version = "0.4"
features = ["alloc"]
default-features = false

[dependencies.hashbrown]
version = "0.17"
features = ["serde"]

[dependencies.html-escape]
version = "0.2"
default-features = false

[dependencies.layout]
version = "0.1.3"
optional = true
package = "layout-rs"

[dependencies.libm]
version = "0.2"
default-features = false

[dependencies.memmap2]
version = "0.9"
optional = true

[dependencies.minicbor-serde]
version = "0.6.2"
features = ["alloc"]
optional = true
default-features = false

[dependencies.object-pool]
version = "0.6"
optional = true

[dependencies.paste]
version = "1.0.15"
default-features = false

[dependencies.petgraph]
version = "0.8"
features = [
    "serde",
    "serde-1",
    "serde_derive",
    "stable_graph",
]
default-features = false

[dependencies.portable-atomic]
version = "1.11"
features = ["fallback"]
default-features = false

[dependencies.rayon]
version = "1.11"
optional = true

[dependencies.ron]
version = "0.12"
default-features = false

[dependencies.rtrb]
version = "0.3.3"
optional = true

[dependencies.serde]
version = "1.0"
features = [
    "derive",
    "alloc",
]
default-features = false

[dependencies.serde_derive]
version = "1.0"
features = ["default"]

[dependencies.serde_json]
version = "1.0"
features = ["std"]
optional = true
default-features = false

[dependencies.smallvec]
version = "1.15"
features = ["serde"]
default-features = false

[dependencies.spin]
version = "0.10"

[dependencies.svg]
version = "0.18"
optional = true

[dependencies.tempfile]
version = "3.23"
optional = true
default-features = false

[dependencies.zenoh]
version = "1.7.0"
features = [
    "shared-memory",
    "transport_tcp",
    "transport_unixsock-stream",
]
optional = true
default-features = false

[target.'cfg(not(target_os = "macos"))'.dependencies.cudarc]
version = "0.19"
features = [
    "std",
    "driver",
    "dynamic-linking",
    "cuda-version-from-build-system",
]
optional = true
default-features = false
