[package]
edition = "2021"
name = "siderust"
version = "0.9.0"
authors = ["VPRamon <vallespuigramon@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-precision astronomy and satellite mechanics in Rust."
homepage = "https://github.com/Siderust/siderust"
readme = "README.md"
keywords = [
"astronomy",
"satellite",
"orbital-mechanics",
"vsop87",
"rust",
]
categories = [
"science",
"aerospace",
"simulation",
]
license = "AGPL-3.0-or-later"
repository = "https://github.com/Siderust/siderust"
[features]
atmosphere = []
default = ["serde"]
doris = []
lagrange-centers = [
"serde",
"siderust-archive/lagrange",
]
photometry = []
pod = [
"serde",
"dep:faer",
"dep:hex",
"dep:sha2",
]
pod-doris = [
"pod",
"doris",
]
pod-parquet = [
"pod",
"dep:parquet",
]
runtime-data = ["siderust-archive/fetch"]
serde = [
"dep:serde",
"dep:serde_json",
"qtty/serde",
"affn/serde",
"tempoch/serde",
]
spice = []
[lib]
name = "siderust"
path = "src/lib.rs"
[[example]]
name = "01_basic_coordinates"
path = "examples/01_basic_coordinates.rs"
[[example]]
name = "02_coordinate_transformations"
path = "examples/02_coordinate_transformations.rs"
[[example]]
name = "03_all_frames_conversions"
path = "examples/03_all_frames_conversions.rs"
[[example]]
name = "04_all_center_conversions"
path = "examples/04_all_center_conversions.rs"
[[example]]
name = "05_target_tracking"
path = "examples/05_target_tracking.rs"
[[example]]
name = "06_night_events"
path = "examples/06_night_events.rs"
[[example]]
name = "07_moon_properties"
path = "examples/07_moon_properties.rs"
[[example]]
name = "08_solar_system"
path = "examples/08_solar_system.rs"
[[example]]
name = "09_star_observability"
path = "examples/09_star_observability.rs"
[[example]]
name = "10_time_periods"
path = "examples/10_time_periods.rs"
[[example]]
name = "11_serde_serialization"
path = "examples/11_serde_serialization.rs"
[[example]]
name = "12_runtime_ephemeris"
path = "examples/12_runtime_ephemeris.rs"
[[example]]
name = "13_coordinate_operations"
path = "examples/13_coordinate_operations.rs"
[[example]]
name = "14_nutation_models"
path = "examples/14_nutation_models.rs"
[[example]]
name = "15_orbit_models"
path = "examples/15_orbit_models.rs"
[[example]]
name = "16_lambert_earth_to_mars"
path = "examples/16_lambert_earth_to_mars.rs"
required-features = ["pod"]
[[example]]
name = "17_sgp4_from_tle"
path = "examples/17_sgp4_from_tle.rs"
required-features = ["pod"]
[[example]]
name = "18_lisa_pod"
path = "examples/18_lisa_pod.rs"
required-features = ["pod"]
[[test]]
name = "lagrange_centers"
path = "tests/lagrange_centers.rs"
[[test]]
name = "pod_smoke"
path = "tests/pod_smoke.rs"
required-features = ["pod"]
[[test]]
name = "spice_context"
path = "tests/spice_context.rs"
required-features = ["spice"]
[[test]]
name = "test_altitude_api"
path = "tests/test_altitude_api.rs"
[[test]]
name = "test_altitude_provider"
path = "tests/test_altitude_provider.rs"
[[test]]
name = "test_angular_separation"
path = "tests/test_angular_separation.rs"
[[test]]
name = "test_asteroid"
path = "tests/test_asteroid.rs"
[[test]]
name = "test_astro_frame_bias"
path = "tests/test_astro_frame_bias.rs"
[[test]]
name = "test_astro_nights_roque_2026"
path = "tests/test_astro_nights_roque_2026.rs"
[[test]]
name = "test_azimuth_api"
path = "tests/test_azimuth_api.rs"
[[test]]
name = "test_bodies"
path = "tests/test_bodies.rs"
[[test]]
name = "test_cartesian"
path = "tests/test_cartesian.rs"
[[test]]
name = "test_cartesian_direction"
path = "tests/test_cartesian_direction.rs"
[[test]]
name = "test_cartesian_vector"
path = "tests/test_cartesian_vector.rs"
[[test]]
name = "test_coordinates"
path = "tests/test_coordinates.rs"
[[test]]
name = "test_domain_b"
path = "tests/test_domain_b.rs"
[[test]]
name = "test_ellipsoidal_geodesy"
path = "tests/test_ellipsoidal_geodesy.rs"
[[test]]
name = "test_ephemeris"
path = "tests/test_ephemeris.rs"
[[test]]
name = "test_high_precision_earth_rotation_regression"
path = "tests/test_high_precision_earth_rotation_regression.rs"
[[test]]
name = "test_iau_compliance"
path = "tests/test_iau_compliance.rs"
[[test]]
name = "test_jpl_real_backend"
path = "tests/test_jpl_real_backend.rs"
[[test]]
name = "test_moon_phase"
path = "tests/test_moon_phase.rs"
[[test]]
name = "test_new_coordinate_systems"
path = "tests/test_new_coordinate_systems.rs"
[[test]]
name = "test_planets"
path = "tests/test_planets.rs"
[[test]]
name = "test_satellite"
path = "tests/test_satellite.rs"
[[test]]
name = "test_serde"
path = "tests/test_serde.rs"
[[test]]
name = "test_spherical_frames"
path = "tests/test_spherical_frames.rs"
[[test]]
name = "test_spk_runtime"
path = "tests/test_spk_runtime.rs"
[[test]]
name = "test_stars"
path = "tests/test_stars.rs"
[[test]]
name = "test_stellar"
path = "tests/test_stellar.rs"
[[test]]
name = "test_target_transform"
path = "tests/test_target_transform.rs"
[[test]]
name = "test_time"
path = "tests/test_time.rs"
[[test]]
name = "test_units"
path = "tests/test_units.rs"
[[test]]
name = "test_vsop87e_vel"
path = "tests/test_vsop87e_vel.rs"
[[test]]
name = "test_wgs84_regression"
path = "tests/test_wgs84_regression.rs"
[[test]]
name = "tle_sgp4_pipeline"
path = "tests/tle_sgp4_pipeline.rs"
required-features = ["pod"]
[[bench]]
name = "altitude_comparison"
path = "benches/altitude_comparison.rs"
harness = false
[[bench]]
name = "converters"
path = "benches/converters.rs"
harness = false
[[bench]]
name = "de441"
path = "benches/de441.rs"
harness = false
[[bench]]
name = "elp2000"
path = "benches/elp2000.rs"
harness = false
[[bench]]
name = "ephemeris_comparison"
path = "benches/ephemeris_comparison.rs"
harness = false
[[bench]]
name = "moon_altitude"
path = "benches/moon_altitude.rs"
harness = false
[[bench]]
name = "sidereal"
path = "benches/sidereal.rs"
harness = false
[[bench]]
name = "solar_altitude"
path = "benches/solar_altitude.rs"
harness = false
[[bench]]
name = "spk_perf"
path = "benches/spk_perf.rs"
harness = false
[[bench]]
name = "star_altitude"
path = "benches/star_altitude.rs"
harness = false
[[bench]]
name = "vsop87"
path = "benches/vsop87.rs"
harness = false
[dependencies.affn]
version = "0.7"
features = ["astro"]
[dependencies.approx]
version = "0.5"
[dependencies.cheby]
version = "0.3"
[dependencies.chrono]
version = "0.4"
[dependencies.faer]
version = "0.22"
features = [
"std",
"linalg",
]
optional = true
default-features = false
[dependencies.hex]
version = "0.4"
optional = true
[dependencies.keplerian]
version = "0.2"
[dependencies.optica]
version = "0.1"
[dependencies.parquet]
version = "58"
optional = true
default-features = false
[dependencies.paste]
version = "1.0"
[dependencies.principia]
version = "0.2"
features = ["alloc"]
[dependencies.qtty]
version = "0.8"
features = [
"astro",
"density",
"frequency",
"radiometry",
"satellite",
]
[dependencies.quick-xml]
version = "0.40"
[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.sha2]
version = "0.11"
optional = true
[dependencies.siderust-archive]
version = "0.1"
features = [
"jpl",
"vsop",
"elp",
"nutation",
"gravity",
"atmosphere",
"pluto",
"time",
]
[dependencies.tempoch]
version = "0.6.3"
[dependencies.thiserror]
version = "2"
[dependencies.wide]
version = "1.4"
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.rstest]
version = "0.26"
[dev-dependencies.serde_json]
version = "1.0"
[build-dependencies]
[lints.clippy]
dbg_macro = "deny"
print_stdout = "warn"
todo = "deny"
unimplemented = "deny"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.rust]
missing_docs = "deny"
unreachable_pub = "warn"
unsafe_code = "forbid"
[lints.rustdoc]
broken_intra_doc_links = "deny"