[package]
name = "cu29"
description = "Copper Runtime prelude crate. Copper is a Rust engine for robotics."
documentation = "https://docs.rs/cu29"
version.workspace = true
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
keywords.workspace = true
categories.workspace = true
homepage.workspace = true
repository.workspace = true
readme = "README.md"
[[test]]
name = "safety_ids"
path = "tests/safety_ids.rs"
harness = false
required-features = ["safety-ids"]
[package.metadata.copper-safety]
scope = "bare-metal-no-std"
[dependencies]
cu29-clock = { workspace = true }
cu29-derive = { workspace = true }
cu29-log = { workspace = true }
cu29-log-derive = { workspace = true }
cu29-log-runtime = { workspace = true }
cu29-reflect-derive = { workspace = true }
cu29-runtime = { workspace = true }
cu29-traits = { workspace = true }
cu29-units = { path = "../cu29_units", version = "1.0.1", default-features = false, optional = true }
cu29-unifiedlog = { workspace = true }
cu29-value = { workspace = true }
defmt = { workspace = true, optional = true }
rtsan-standalone = { workspace = true, optional = true }
bevy_reflect_derive = { workspace = true, optional = true }
bincode = { workspace = true }
serde = { workspace = true }
serde_derive = { workspace = true }
inventory = { workspace = true, optional = true }
serde_json = { workspace = true, optional = true, default-features = true }
spin = { workspace = true }
rayon = { workspace = true, optional = true }
ctrlc = { workspace = true, optional = true }
[features]
default = ["std", "signal-handler", "textlogs", "units"]
defmt = [
"dep:defmt",
"cu29-log/defmt",
"cu29-log-derive/defmt",
"cu29-runtime/defmt",
"cu29-traits/defmt",
]
textlogs = ["cu29-log-derive/textlogs"]
units = ["dep:cu29-units"]
macro_debug = ["cu29-derive/macro_debug", "cu29-log-derive/macro_debug"]
signal-handler = ["dep:ctrlc", "cu29-derive/signal-handler"]
sysclock-perf = ["std", "cu29-runtime/sysclock-perf"]
high-precision-limiter = ["std", "cu29-runtime/high-precision-limiter"]
log-level-debug = ["cu29-log-derive/log-level-debug"]
log-level-info = ["cu29-log-derive/log-level-info"]
log-level-warning = ["cu29-log-derive/log-level-warning"]
log-level-error = ["cu29-log-derive/log-level-error"]
log-level-critical = ["cu29-log-derive/log-level-critical"]
reflect = [
"dep:bevy_reflect_derive",
"cu29-clock/reflect",
"cu29-runtime/reflect",
"cu29-traits/reflect",
"cu29-units?/reflect",
]
remote-debug = ["reflect", "cu29-runtime/remote-debug"]
async-cl-io = ["std", "cu29-derive/async-cl-io", "cu29-runtime/async-cl-io"]
parallel-rt = ["std", "cu29-derive/parallel-rt", "cu29-runtime/parallel-rt"]
rt-scheduling = ["std", "cu29-runtime/rt-scheduling"]
mmap-fsync = ["std", "cu29-runtime/mmap-fsync", "cu29-unifiedlog/mmap-fsync"]
memory_monitoring = [
"std",
"cu29-runtime/memory_monitoring",
"cu29-derive/memory_monitoring",
]
std = [
"rayon",
"cu29-clock/std",
"cu29-derive/std",
"cu29-log-derive/std",
"cu29-log/std",
"cu29-log-runtime/std",
"cu29-runtime/std",
"cu29-traits/std",
"cu29-units?/std",
"cu29-unifiedlog/std",
"cu29-value/std",
]
rtsan = ["dep:rtsan-standalone", "cu29-derive/rtsan"]
safety-ids = ["std", "dep:inventory", "dep:serde_json"]