Files

73 lines
2.0 KiB
TOML

[package]
name = "astrokit"
version = "0.1.0"
edition = "2021"
authors = ["Connor Johnstone"]
description = "A highly performant astrodynamics engine"
readme = "readme.md"
repository = "https://git.rcjohnstone.com/connor/astrokit"
license = "MIT"
# The oldest toolchain this is tested against, not the oldest it might compile on.
rust-version = "1.89"
keywords = ["astrodynamics", "orbit", "propagation", "spaceflight"]
categories = ["science", "aerospace"]
exclude = [
"tests/*",
"scripts/*",
".githooks/*",
]
[package.metadata.docs.rs]
all-features = true
[features]
default = ["autodiff", "msis"]
autodiff = ["dep:num-dual"]
# NRLMSISE-00 as a density model, from its own crate
msis = ["dep:nrlmsise00"]
[dependencies]
anise = { version = "0.10.6", default-features = false }
hifitime = "4.3"
log = "0.4"
nalgebra = { version = "0.35", features = ["serde-serialize"] }
num-dual = { version = "0.15", optional = true }
nrlmsise00 = { version = "0.2", optional = true, features = ["drivers", "fast"] }
num-traits = "0.2"
ordinary-diffeq = { version = "0.8", default-features = false }
serde = { version = "1.0", features = ["derive"] }
thiserror = "2.0"
[dev-dependencies]
approx = "0.5"
log = { version = "0.4", features = ["std"] }
serde_json = "1.0"
criterion = "0.7"
num-dual = "0.15"
[[bench]]
name = "gravity"
harness = false
[[bench]]
name = "kepler"
harness = false
[[bench]]
name = "propagation"
harness = false
[[bench]]
name = "reference_scenarios"
harness = false
# Measured 2026-10-03, because the unoptimized example took 95 seconds and the readme
# claimed six. The gravity evaluator is this crate's own code, so optimizing only
# dependencies buys little -- that was measured too, at 95 s to 62 s. At opt-level 1 the
# whole example is 6.3 s and `cargo test` goes from 2.8 s to 0.9 s, against 4 s added to
# a clean build (10.0 s to 14.3 s) and no measurable cost to an incremental one. Some
# inlining happens at this level, so a debugger steps less faithfully than at 0; that is
# the only thing given up.
[profile.dev]
opt-level = 1