krabmaga 0.5.0

A modern developing art for reliable and efficient Agent-based Model (ABM) simulation with the Rust language.
[package]
name = "krabmaga"
version = "0.5.0"
authors = [
    "Carmine Spagnuolo <spagnuolocarmine@gmail.com>", 
    "Alessia Antelmi <aantelmi@unisa.it>", 
    "Matteo D'Auria <matdauria@unisa.it>", 
    "Daniele De Vinco <danieledevinco1996@gmail.com", 
    "Francesco Foglia <frafonia@gmail.com>", 
    "Pasquale Caramante <pasqcaramante@gmail.com>", 
    "Luca Postiglione <lucapostiglione10@gmail.com>", 
    "Giuseppe D'Ambrosio <giuseppe.dambrosio14@gmail.com>",
    "Andrea Tranquillo <andreatranquillo87@gmail.com>"
]
edition = "2021"
license = "MIT"
keywords = ["discrete-event", "ABM", "simulation", "agent-based-model"]
categories = ["science", "simulation", "mathematics", "visualization", "wasm"]
description = "A modern developing art for reliable and efficient Agent-based Model (ABM) simulation with the Rust language."
readme = "README.md"
homepage = "https://krABMaga.github.io/"
repository = "https://github.com/krABMaga/krABMaga"
documentation = "https://docs.rs/krABMaga"

[dependencies]
hashbrown = "0.12.1"
priority-queue = "1.2.1"
rand = "0.8.5"
lazy_static = "1.4.0"
cfg-if = "1.0.0"
num_cpus = "1.13.1"
rayon="1.5.1"
ahash="0.7.6"
dyn-clone="1.0.5"
downcast-rs = "1.2.0"
csv = "1.1.6"
indicatif = "0.16.2"
rand_pcg = "0.3.1"
chrono = "0.4"

# Parallel
crossbeam = {version = "0.8.1", optional = true}
clap= {version = "2.34.0", optional = true}

# Model exploration AWS features
lambda_runtime = {version = "0.4", optional = true}
serde = { version = "1.0.137", features = ["derive"], optional = true}
serde_json = {version = "1.0.81", optional = true}
tokio = { version = "1.18.1", features = ["full"], optional = true }
aws-config = {version = "0.4", optional = true}
aws-sdk-sqs = {version = "0.4", optional = true}
aws-sdk-lambda = {version = "0.4", optional = true}
futures = {version = "0.3", optional = true}

# Model exploration MPI features
# We used this crate because "rsmpi" has some bugs, so we updated to this fork
# mpi-fork-fnsp = { version="0.6", optional = true }
mpi = { version = "0.6", optional=true, features = ["user-operations", "derive"] }
memoffset = { version = "0.6.4", optional = true}

# Bayesian
friedrich = { version = "0.4.1", optional = true }
statrs = { version = "0.15.0", optional = true } 

# Visualization features
bevy_prototype_lyon = {version="0.11.0", optional=true, default-features = false}
image = {version="0.24.8", optional=true, default-features = false}
bevy_egui = {version="0.25.0",optional=true}
bevy = {version= "0.13.0", optional = true, features = ["x11"]}

[target.'cfg(target_arch = "wasm32")'.dependencies]
getrandom = {version="0.2.6", features=["wasm-bindgen"], default-features = false}

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tui = "0.18.0"
crossterm = "0.23.2"
sysinfo = "0.27.2"
plotters = "0.3.1" 

# Must be kept separate and asked to the user due to missing support for conditional compilation of features
# https://github.com/rust-lang/cargo/issues/7914
# "mpi-fork-fnsp" old dependency, fork of mpi
[features]
distributed_mpi = [
    "mpi",
    "memoffset"
]
aws = [
    "lambda_runtime",
    "serde",
    "serde_json",
    "tokio",
    "aws-config",
    "aws-sdk-sqs",
    "aws-sdk-lambda",
    "futures",
]
bayesian = [
    "friedrich",
    "statrs", 
]

parallel = [
    "crossbeam",
    "clap",
]

visualization = [
    "bevy_prototype_lyon",
    "bevy",
    "bevy/bevy_winit",
    "bevy/bevy_render",
    "bevy/bevy_gltf",
    "bevy/png",
    "image",
    "bevy_egui",
    "bevy_egui/default_fonts"
]
visualization_wasm = [
    "bevy_prototype_lyon",
    "bevy",
    "bevy/bevy_winit",
    "bevy/bevy_render",
    "bevy/bevy_gltf",
    "bevy/png",
    "image",
    "bevy_egui",
    "bevy_egui/default_fonts"
]

[package.metadata.docs.rs]
features = ["bayesian"]


[lib]
doctest = false