[package]
name = "rustsim"
version = "0.0.1"
edition = "2021"
rust-version = "1.94.0"
license = "MIT"
description = "High-performance agent-based modelling engine - top-level orchestration crate"
repository.workspace = true
keywords = ["abm", "agent-based", "simulation", "cuda", "clickhouse"]
categories = ["science", "simulation"]
publish = true
[features]
default = ["cuda"]
cuda = ["cudarc", "rustsim-crowd/cuda"]
rayon = ["dep:rayon"]
clickhouse-gzip = ["rustsim-io/gzip"]
clickhouse-spill = ["rustsim-io/spill"]
[dependencies]
rustsim-core = { version = "0.0.1", path = "../foundation/rustsim-core" }
rustsim-geometry = { version = "0.0.1", path = "../foundation/rustsim-geometry" }
rustsim-modes = { version = "0.0.1", path = "../foundation/rustsim-modes" }
rustsim-broadphase = { version = "0.0.1", path = "../infrastructure/rustsim-broadphase" }
rustsim-spaces = { version = "0.0.1", path = "../infrastructure/rustsim-spaces" }
rustsim-schedulers = { version = "0.0.1", path = "../infrastructure/rustsim-schedulers" }
rustsim-pathfinding = { version = "0.0.1", path = "../infrastructure/rustsim-pathfinding" }
rustsim-io = { version = "0.0.1", path = "../infrastructure/rustsim-io" }
rustsim-crowd = { version = "0.0.1", path = "../domain/mobility/rustsim-crowd" }
rustsim-vehicle = { version = "0.0.1", path = "../domain/mobility/rustsim-vehicle" }
rustsim-transit = { version = "0.0.1", path = "../domain/mobility/rustsim-transit" }
rustsim-traffic = { version = "0.0.1", path = "../domain/flow/rustsim-traffic" }
rustsim-mobility = { version = "0.0.1", path = "../orchestration/rustsim-mobility" }
arrow-schema = "58"
thiserror = { workspace = true }
tracing = { workspace = true }
cudarc = { version = "0.19", optional = true, features = ["cuda-version-from-build-system", "fallback-latest"] }
rayon = { version = "1", optional = true }
[dev-dependencies]
arrow-array = "58"
arrow-schema = "58"
rand = "0.8"
criterion = { workspace = true }
[[bench]]
name = "end_to_end_bench"
harness = false
[[bench]]
name = "cpu_scaling_bench"
harness = false
[[example]]
name = "basic_particle"
[[example]]
name = "schelling"
[[example]]
name = "event_queue"
[[example]]
name = "social_force"
[[example]]
name = "crowd_corridor"
[[example]]
name = "crowd_station"
[[example]]
name = "multimodal_commute"
[[example]]
name = "crowd_telemetry_demo"
[[example]]
name = "headless_telemetry"
[[example]]
name = "cuda_particle"