[package]
name = "rustpower"
version = "0.5.0"
edition = "2024"
authors = ["cts chengts95@msn.cn"]
description = "An experimental ECS world snapshot system built on Bevy, featuring structured archetype storage and manifest-based serialization."
license = "MPL-2.0"
repository = "https://github.com/chengts95/rustpower"
exclude = [
"tech_doc/**",
"*.ipynb"
]
[workspace]
members = [
"crates/*"
]
default-members = [
".",
"crates/rustpower_proc_marco",
]
[lib]
name = "rustpower"
crate-type = ["rlib", "cdylib"]
[features]
default=["rsparse", "arrow"]
klu_dyn = ["dep:rustpower-sol-klu"]
klu = ["dep:rustpower-sol-klu", "rustpower-sol-klu/static"]
faer = ["dep:faer"]
rsparse = ["dep:rsparse"]
archive = ["dep:bevy_archive"]
arrow = ["dep:bevy_archive", "bevy_archive/arrow_rs", "archive"]
python = ["dep:pyo3", "dep:numpy"]
[profile.release]
opt-level = 3
overflow-checks = false
[profile.dev.package.faer]
opt-level = 3
[profile.dev.package.nalgebra]
opt-level = 3
[profile.dev.package.nalgebra-sparse]
opt-level = 3
[dependencies]
ordered-float = { version = ">3.0", default-features = false }
nalgebra = { version = ">=0.32.0", features = ["serde-serialize"] }
nalgebra-sparse = { version = ">=0.7.0", features = ["serde-serialize"] }
simba = ">=0.9.0"
serde = { version = ">=1.0", features = ["derive"] }
serde_json = ">=1.0"
num-traits = ">=0.2"
num-derive = ">=0.3"
num-complex = ">=0.4"
rsparse = {version ="^1.2", optional = true}
csv = "^1.3.0"
zip = "^8.0.0"
bevy_ecs = "0.19.0"
bevy_app = "0.19.0"
derive_more = { version = "^1.0", features = ["full"] }
tabled = "^0.16.0"
bevy_archive = { version = "0.4.0", optional=true }
const_format = {version = "^0.2.34"}
faer = {version = "^0.24", optional = true}
rustpower_proc_marco = {path = "crates/rustpower_proc_marco", version = "0.4.0"}
bumpalo = "^3.20.0"
pyo3 = { version = "0.23", features = ["extension-module", "abi3-py310"], optional = true }
numpy = { version = "0.23", optional = true }
[dependencies.rustpower-sol-klu]
path = "./crates/rustpower-sol-klu"
version = "0.1.4"
optional = true