rustsim 0.0.1

High-performance agent-based modelling engine - top-level orchestration crate
Documentation
[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]

# CUDA is enabled by default so that on hosts with an NVIDIA driver the

# `auto_*` compute entry points and `DeviceSoaStore::{init_cuda,

# step_cuda_resident, …}` paths are available for free. cudarc is linked

# with `fallback-latest` + `cuda-version-from-build-system`, so the build

# succeeds without a local CUDA toolkit: the driver is dlopen'd at

# runtime and `detect_backend()` transparently returns

# `ComputeBackend::Cpu` on hosts without a working GPU. Disable with

# `--no-default-features` if you want a pure-CPU crate with no cudarc

# dependency.

default = ["cuda"]

cuda = ["cudarc", "rustsim-crowd/cuda"]

# Opt-in CPU data-parallelism for SoA batch stepping via rayon.

rayon = ["dep:rayon"]

# Forward ClickHouse gzip compression feature from rustsim-io.

clickhouse-gzip = ["rustsim-io/gzip"]

# Forward ClickHouse on-disk spill feature from rustsim-io.

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"