# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "brahe"
version = "1.4.1"
authors = ["Duncan Eddy <duncan.eddy@gmail.com>"]
build = false
exclude = [
    "/test_data",
    "/tests",
    "/scripts",
    "/docs",
    "/brahe",
    "/crates",
    ".github",
    "/examples",
    "/plots",
    "/test_assets",
    "/data/textures/world.topo.200410.3x5400x2700.png",
    "justfile",
    "properdocs.yml",
    "uv.lock",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Brahe is a modern satellite dynamics library for research and engineering applications designed to be easy-to-learn, high-performance, and quick-to-deploy. The north-star of the development is enabling users to solve meaningful problems and answer questions quickly, easily, and correctly."
homepage = "https://duncaneddy.github.io/brahe/"
documentation = "https://docs.rs/brahe/"
readme = "README.md"
keywords = [
    "space",
    "astrodynamics",
    "satellite",
]
categories = ["science"]
license = "MIT"
repository = "https://github.com/duncaneddy/brahe/"

[features]
ci = []
dhat-ad-hoc = []
dhat-heap = []
manual = []
python = [
    "dep:pyo3",
    "dep:numpy",
]

[lib]
name = "brahe"
path = "src/lib.rs"

[[bench]]
name = "propagator_benchmarks"
path = "benchmarks/propagator_benchmarks.rs"
harness = false

[[bench]]
name = "provider_benchmarks"
path = "benchmarks/provider_benchmarks.rs"
harness = false

[dependencies.anise]
version = "0.9.3"

[dependencies.dirs]
version = "6.0.0"

[dependencies.is_close]
version = "0.1.3"

[dependencies.nalgebra]
version = "0.34.1"
features = ["serde-serialize"]

[dependencies.num-traits]
version = "0.2.19"

[dependencies.num_cpus]
version = "1.17"

[dependencies.numpy]
version = "0.28.0"
optional = true

[dependencies.once_cell]
version = "1.21.3"

[dependencies.polars]
version = "0.53"
features = ["lazy"]
default-features = false

[dependencies.pyo3]
version = "0.28.2"
optional = true

[dependencies.quick-xml]
version = "0.39"
features = ["serialize"]

[dependencies.rayon]
version = "1.11"

[dependencies.regex]
version = "1.12.3"

[dependencies.rsofa]
version = "0.5.0"

[dependencies.serde]
version = "1.0.228"
features = ["derive"]

[dependencies.serde_json]
version = "1.0.149"

[dependencies.sgp4]
version = "2.3.0"

[dependencies.strum]
version = "0.28.0"

[dependencies.strum_macros]
version = "0.28.0"

[dependencies.ureq]
version = "3.2.0"
features = [
    "cookies",
    "multipart",
]

[dependencies.uuid]
version = "1.20.0"
features = [
    "v4",
    "v7",
    "serde",
]

[dev-dependencies.approx]
version = "0.5.1"

[dev-dependencies.cargo-deny]
version = "0.19.0"

[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]

[dev-dependencies.dhat]
version = "0.3.3"

[dev-dependencies.httpmock]
version = "0.8.3"

[dev-dependencies.mockall]
version = "0.14.0"

[dev-dependencies.rand]
version = "0.9"

[dev-dependencies.rstest]
version = "0.26.1"

[dev-dependencies.rv]
version = "0.19"

[dev-dependencies.serial_test]
version = "3.3.1"

[dev-dependencies.tempfile]
version = "3.24.0"

[lints.rust]
missing_docs = "warn"

[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
    "cfg(coverage,coverage_nightly)",
    'cfg(feature, values("manual"))',
]

[profile.bench]
opt-level = 3
lto = "thin"

[profile.dev]
opt-level = 0
lto = "off"

[profile.profiling]
debug = 1
inherits = "release"

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