[package]
name = "simular"
version = "0.3.1"
edition = "2021"
rust-version = "1.75.0"
authors = ["PAIML Engineering"]
description = "Unified Simulation Engine for the Sovereign AI Stack"
license = "MIT"
repository = "https://github.com/paiml/simular"
keywords = ["simulation", "physics", "monte-carlo", "optimization", "reproducible"]
categories = ["simulation", "science", "mathematics"]
[dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
bincode = "1.3"
validator = { version = "0.20", features = ["derive"] }
thiserror = "2.0"
rand = "0.8"
rand_pcg = { version = "0.3", features = ["serde1"] }
indexmap = { version = "2.0", features = ["serde"] }
zstd = "0.13"
blake3 = "1.5"
memmap2 = "0.9"
tokio = { version = "1.0", features = ["full"], optional = true }
ratatui = { version = "0.29", optional = true }
crossterm = { version = "0.28", optional = true }
presentar-terminal = { version = "0.3", path = "../presentar/crates/presentar-terminal", optional = true }
presentar-core = { version = "0.3", path = "../presentar/crates/presentar-core", default-features = false, optional = true }
wasm-bindgen = { version = "0.2", optional = true }
js-sys = { version = "0.3", optional = true }
web-sys = { version = "0.3", features = [
"console", "Window", "Performance", "Document", "Element", "HtmlElement",
"HtmlCanvasElement", "HtmlInputElement", "HtmlSelectElement", "CanvasRenderingContext2d",
"EventTarget", "Event", "NodeList", "DomTokenList", "CssStyleDeclaration"
], optional = true }
getrandom = { version = "0.2", features = ["js"], optional = true }
serde-wasm-bindgen = { version = "0.6", optional = true }
console_error_panic_hook = { version = "0.1", optional = true }
num-traits = "0.2"
uom = { version = "0.36", features = ["serde"] }
toml = "0.8"
bitflags = "2.6"
crossbeam-deque = "0.8"
[dev-dependencies]
proptest = "1.5"
criterion = { version = "0.5", default-features = false }
tempfile = "3.14"
presentar-test = { version = "0.3", path = "../presentar/crates/presentar-test" }
[features]
default = []
tui = ["dep:ratatui", "dep:crossterm", "dep:presentar-terminal", "dep:presentar-core"]
web = ["dep:tokio"]
wasm = ["dep:wasm-bindgen", "dep:js-sys", "dep:web-sys", "dep:getrandom", "dep:serde-wasm-bindgen", "dep:console_error_panic_hook"]
full = ["tui", "web"]
verification = []
proptest = []
z3-proofs = []
schema-validation = []
[lib]
name = "simular"
path = "src/lib.rs"
crate-type = ["cdylib", "rlib"]
[[bin]]
name = "simular"
path = "src/main.rs"
[[example]]
name = "monte_carlo"
path = "examples/monte_carlo.rs"
[[example]]
name = "physics_simulation"
path = "examples/physics_simulation.rs"
[[example]]
name = "optimization"
path = "examples/optimization.rs"
[[example]]
name = "reproducibility"
path = "examples/reproducibility.rs"
[[example]]
name = "jidoka_guards"
path = "examples/jidoka_guards.rs"
[[example]]
name = "orbit_demo"
path = "examples/orbit_demo.rs"
[[example]]
name = "tsp_grasp_demo"
path = "examples/tsp_grasp_demo.rs"
[[bin]]
name = "orbit-tui"
path = "src/bin/orbit_tui.rs"
required-features = ["tui"]
[[bin]]
name = "tsp-tui"
path = "src/bin/tsp_tui.rs"
required-features = ["tui"]
[[bench]]
name = "simulation_benchmarks"
harness = false
[profile.release]
lto = true
codegen-units = 1
opt-level = 3
[package.metadata.wasm-pack.profile.release]
wasm-opt = false
[target.'cfg(target_arch = "wasm32")'.dependencies]
getrandom = { version = "0.2", features = ["js"] }
[lints.rust]
unsafe_code = "deny"
[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"