rust-spice 0.4.7

WOW! The complete NASA/NAIF Spice toolkit is actually usable on Rust.
Documentation
use nalgebra;
use spice;

fn main() -> Result<(), spice::KernelError> {
    let mut kernel = spice::Kernel::new("rsc/krn/hera_study_PO_EMA_2024.tm")?;
    let date = "2027-MAR-23 16:00:00";
    let from = "J2000";
    let to = "ECLIPJ2000";

    let et = spice::str2et(date);

    let rotation_default = nalgebra::Rotation3::<f64>::identity();
    let rotate = spice::pxform("J2000", "ECLIPJ2000", et);

    let up = nalgebra::Unit::new_normalize(nalgebra::Vector3::new(0., 0., 1.));
    let up_tilted = rotate * up;
    let tilt_angle = up.dot(&up_tilted).acos() * tool::RAD2DEG;
    let angle_rotate = rotation_default.angle_to(&rotate) * tool::RAD2DEG;

    println!("rotation {} -> {}: {:.2}", from, to, rotate.matrix());
    println!("tilt angle: {:.2}", tilt_angle);
    println!("rotate angle: {:.2}", angle_rotate);

    kernel.unload()?;
    Ok(())
}