# \[ANN\] Ephemerides.jl - A pure Julia binary ephemeris reader

**URL:** https://discourse.julialang.org/t/ann-ephemerides-jl-a-pure-julia-binary-ephemeris-reader/104830
**Category:** Astro/Space
**Tags:** package, announcement
**Created:** [October 11, 2023, 7:25am UTC](https://discourse.julialang.org/t/ann-ephemerides-jl-a-pure-julia-binary-ephemeris-reader/104830 "2023-10-11T07:25:04Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![MicheleCeresoli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/micheleceresoli/32/202392_2.png) [@MicheleCeresoli](https://discourse.julialang.org/u/MicheleCeresoli)
#### Post date: [October 11, 2023, 7:25am UTC](https://discourse.julialang.org/t/ann-ephemerides-jl-a-pure-julia-binary-ephemeris-reader/104830/1 "2023-10-11T07:25:04Z")

</div>

Hello everyone,

I’m happy to present you [Ephemerides.jl](https://github.com/JuliaSpaceMissionDesign/Ephemerides.jl), a package that provides fast, thread-safe and allocation-free access to binary JPL SPK and PCK ephemeris files. Completely written in Julia, it enables Automatic-Differentiation (AD) via ForwardDiff across all of its function calls.

Once you have the desired kernels on your PC, you can easily load them:

```julia
# Load a single SPK kernel 
eph = EphemerisProvider("de440.bsp")

```

and then compute all the desired positions, angles and their higher-order derivatives (up to the jerk):

```julia
# TDB seconds at 2000-01-01T12:00:00 (J2000)
time = 0.0

# Compute the position of point 399 with respect to 3 at J2000
pos = ephem_vector3(eph, 3, 399, time)

```

It also beats both SPICE and CALCEPH in terms of execution speed, as you can see from some of the [benchmarks](https://juliaspacemissiondesign.github.io/Ephemerides.jl/stable/benchmarks/) we performed.
