# 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 = "2021"
rust-version = "1.82"
name = "outfit"
version = "1.0.0"
authors = ["Roman Le Montagner <roman.le-montagner@ijclab.in2p3.fr>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Orbit determination toolkit in Rust. Provides astrometric parsing, observer management, and initial orbit determination (Gauss method) with JPL ephemeris support."
homepage = "https://github.com/FusRoman/Outfit"
documentation = "https://docs.rs/outfit"
readme = "README.md"
keywords = [
    "astronomy",
    "orbit-determination",
    "asteroid",
    "ephemeris",
    "astrometry",
]
categories = [
    "science",
    "parsing",
    "data-structures",
]
license-file = "LICENSE"
repository = "https://github.com/FusRoman/Outfit"

[package.metadata.docs.rs]
features = ["jpl-download"]
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
jpl-download = [
    "dep:reqwest",
    "dep:tokio",
    "dep:tokio-stream",
]
progress = ["dep:indicatif"]

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

[[example]]
name = "gauss_iod_once"
path = "examples/gauss_iod_once.rs"
required-features = ["jpl-download"]

[[example]]
name = "parquet_to_orbit"
path = "examples/parquet_to_orbit.rs"
required-features = ["jpl-download"]

[[test]]
name = "outfit_struct_test"
path = "tests/outfit_struct_test.rs"

[[test]]
name = "reader_80col_test"
path = "tests/reader_80col_test.rs"
required-features = ["jpl-download"]

[[test]]
name = "test_gauss_iod"
path = "tests/test_gauss_iod.rs"

[[test]]
name = "test_large_parquet"
path = "tests/trajectories_from_parquet.rs"
required-features = ["jpl-download"]

[[test]]
name = "test_read_ades"
path = "tests/test_read_ades.rs"
required-features = ["jpl-download"]

[[test]]
name = "test_trajectories_from_vec"
path = "tests/trajectories_from_vec.rs"
required-features = ["jpl-download"]

[[bench]]
name = "gauss_prelim_orbit"
path = "benches/gauss_prelim_orbit.rs"
harness = false
required-features = ["jpl-download"]

[[bench]]
name = "load_parquet"
path = "benches/load_parquet.rs"
harness = false
required-features = ["jpl-download"]

[[bench]]
name = "outfit_gauss_iod"
path = "benches/outfit_gauss_iod.rs"
harness = false
required-features = ["jpl-download"]

[[bench]]
name = "solve_kepler_equation"
path = "benches/solve_kepler_equation.rs"
harness = false
required-features = ["jpl-download"]

[dependencies.aberth]
version = "0.4.1"
default-features = false

[dependencies.ahash]
version = "0.8.11"
default-features = false

[dependencies.arrow-array]
version = "54.3.1"
default-features = false

[dependencies.camino]
version = "1.1.9"
default-features = false

[dependencies.directories]
version = "6.0.0"

[dependencies.hifitime]
version = "4.2.0"
features = [
    "ut1",
    "std",
]
default-features = false

[dependencies.indicatif]
version = "0.18"
optional = true

[dependencies.itertools]
version = "0.14.0"
features = ["use_std"]
default-features = false

[dependencies.nalgebra]
version = "0.33.2"

[dependencies.nom]
version = "8.0.0"

[dependencies.once_cell]
version = "1.21.3"
default-features = false

[dependencies.ordered-float]
version = "5.0.0"
default-features = false

[dependencies.parquet]
version = "54.2.1"
features = [
    "arrow",
    "snap",
]
default-features = false

[dependencies.quick-xml]
version = "0.37.3"
features = ["serialize"]
default-features = false

[dependencies.rand]
version = "0.9.2"
features = ["std_rng"]
default-features = false

[dependencies.rand_distr]
version = "0.5.1"
default-features = false

[dependencies.reqwest]
version = "0.12.15"
features = [
    "http2",
    "rustls-tls",
    "stream",
]
optional = true
default-features = false

[dependencies.roots]
version = "0.0.8"
default-features = false

[dependencies.serde]
version = "1.0"
features = ["derive"]
default-features = false

[dependencies.smallvec]
version = "1.14.0"
default-features = false

[dependencies.thiserror]
version = "2.0.12"
default-features = false

[dependencies.tokio]
version = "1.44.1"
features = [
    "fs",
    "rt",
    "rt-multi-thread",
    "io-util",
]
optional = true
default-features = false

[dependencies.tokio-stream]
version = "0.1.17"
optional = true
default-features = false

[dependencies.ureq]
version = "3.0.10"
features = ["rustls"]
default-features = false

[dev-dependencies.approx]
version = "0.5.1"
default-features = false

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

[dev-dependencies.husky-rs]
version = "0.1.5"

[dev-dependencies.proptest]
version = "1.7.0"

[profile.bench]
opt-level = 3
lto = "thin"
codegen-units = 1
debug = 2

[profile.release]
lto = "fat"
codegen-units = 1
debug = 0
strip = true
