[workspace]
members = [".", "python"]

[package]
keywords = [
    "star-plate-solver",
    "astrometry",
    "astronomy",
    "image-processing",
    "pattern-recognition",
]
name = "tetra3"
version = "0.3.0"
edition = "2021"
description = "Rust implementation of Tetra3: Fast and robust star plate solver"
readme = "README.md"
license = "MIT AND Apache-2.0"
homepage = "https://github.com/ssmichael1/tetra3rs"
repository = "https://github.com/ssmichael1/tetra3rs"
categories = ["aerospace", "algorithms", "mathematics", "science"]
exclude = ["data/", "download_hip2.sh"]

[lib]
name = "tetra3"

[dependencies]
rkyv = { version = "0.8", features = ["bytecheck"] }
num-traits = "0.2.15"
anyhow = "1.0.71"
tracing = { version = "0.1.40", features = ["std"] }
tracing-subscriber = { version = "0.3.20", features = ["fmt", "env-filter"] }
nalgebra = { version = "0.34.1", features = ["std"] }
csv = { version = "1.4.0", optional = true }
image = { version = "0.25", optional = true, default-features = false, features = [
    "jpeg",
    "png",
    "tiff",
] }

[features]
default = []
gaia = ["dep:csv"]
image = ["dep:image"]

[profile.test]
opt-level = 3

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

[dev-dependencies]
rand = "0.10.0"
rand_distr = "0.6.0"
ureq = "3"

# integration tests use centroid extraction which needs the "image" feature
# The test itself reads FITS files directly (minimal parser in-test)
[[test]]
name = "skyview_solve_test"
path = "tests/skyview_solve_test.rs"
required-features = ["image"]

[[test]]
name = "tess_solve_test"
path = "tests/tess_solve_test.rs"
required-features = ["image"]
