ballistics-engine 0.13.21

High-performance ballistics trajectory engine with professional physics
Documentation
[workspace]
members = ["."]
exclude = ["ballistics-engine-rb", "ballistics-engine-py"]

[package]
name = "ballistics-engine"
version = "0.13.21"
edition = "2021"
authors = ["Alex Jokela <email@tinycomputers.io>"]
description = "High-performance ballistics trajectory engine with professional physics"
license = "MIT OR Apache-2.0"
repository = "https://github.com/ajokela/ballistics-engine"
homepage = "https://ballistics.rs/"
documentation = "https://docs.rs/ballistics-engine"
keywords = ["ballistics", "trajectory", "physics", "simulation"]
categories = ["science", "simulation"]
exclude = [
    "app/",
    "tests/",
    "examples/",
    "ios.png",
    "pkg/",
    "pkg-nodejs/",
    "test_ffi.c",
    "test_monte_carlo.py",
    "ballistics_standalone.rs",
    "ballistics/",
    "ballistics",
    "src/main.rs",
    "src/bin/",
    "ballistics-engine-py/",
    "ballistics-engine-rb/",
    "ballistics-engine-rb.bak/",
    "BallisticsEngine.xcframework/",
    "BallisticsEngine.xcframework.bak/",
    "*.xcframework",
    "doc/",
    "target/",
    "*.bak"
]

[features]
default = []
online = ["dep:ureq"]

[dependencies]
nalgebra = "0.34"
once_cell = "1.19"
ndarray = "0.15"
ndarray-npy = "0.8"
rayon = "1.10"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
clap = { version = "4.5", features = ["derive"] }
csv = "1.3"
thiserror = "2.0"
rand = "0.8"
rand_distr = "0.4"

# Optional: HTTP client for online mode
ureq = { version = "2.12", optional = true, features = ["json"] }

# WASM dependencies
[target.'cfg(target_arch = "wasm32")'.dependencies]
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
web-sys = { version = "0.3", features = ["console"] }
js-sys = "0.3"
serde-wasm-bindgen = "0.6"
getrandom = { version = "0.2", features = ["js"] }

[dev-dependencies]
approx = "0.5"
criterion = "0.8"
wasm-bindgen-test = "0.3"

[[bin]]
name = "ballistics"
path = "src/main.rs"

[[bin]]
name = "ballistics-cli"
path = "src/bin/ballistics_cli.rs"

# [[bench]]
# name = "trajectory"
# harness = false

[lib]
name = "ballistics_engine"
crate-type = ["rlib", "staticlib", "cdylib"]

[profile.release]
opt-level = 3
lto = true
codegen-units = 1