73 lines
2.0 KiB
TOML
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
|