Skip to main content

rust-ephem logo

rust-ephem

PyPI version Python 3.10+ Rust License Documentation

Fast ephemeris generation and target visibility calculations for space and ground-based telescopes.

rust-ephem is a Rust library with Python bindings for high-performance satellite and planetary ephemeris calculations. It propagates Two-Line Element (TLE) data and SPICE kernels, outputs standard coordinate frames (ITRS, GCRS), and integrates with astropy for Python workflows. It achieves meters-level accuracy for Low Earth Orbit (LEO) satellites with proper time corrections. It also supports ground-based observatory ephemerides.

Built for performance: generates ephemerides for thousands of time steps using Rust's speed and efficient memory handling. Ideal for visibility calculators where speed is critical (e.g. APIs serving many users) and large-scale ephemeris tasks where it outperforms pure-Python libraries by an order of magnitude.

rust-ephem outputs ephemerides as astropy SkyCoord objects, eliminating manual conversions and enabling seamless integration with astropy-based workflows. By default, it includes Sun and Moon positions in SkyCoord with observer location and velocity, correctly handling motion effects like Moon parallax in LEO spacecraft. It also supports ephemerides for other solar system bodies.

rust-ephem also has a constraint system that enables flexible evaluation of observational constraints for ephemeris planning, including Sun and Moon proximity, Earth limb avoidance, and generic body proximity. It supports logical operators (AND, OR, NOT, XOR) for combining constraints, with Python operator overloading (&, |, ~, ^) for intuitive composition. Built on Pydantic models, it allows JSON serialization and direct evaluation against ephemeris objects for efficient visibility and planning calculations.

Features

  • Rust for Speed: Full featured Python module built on a Rust core for maximum efficiency
  • Multiple Ephemeris Types: TLE (SGP4), SPICE kernels, ground observatories, CCSDS OEM files supported
  • Coordinate Frames: TEME, ITRS, GCRS with automatic transformations
  • Astropy Integration: Direct SkyCoord output for satellite, Sun, Moon, Earth and other solar system body positions
  • High Accuracy: UT1-UTC and polar motion corrections using IERS EOP data
  • Constraint System: Calculate target visibility with Sun/Moon avoidance, Earth limb, eclipses with logical operators (&, |, ~)
  • JPL Horizons Fallback: Automatically query NASA JPL Horizons for bodies not in SPICE kernels, including asteroids and comets
  • Type Support: strong type support for use with mypy, pyright etc.

Installation

pip install rust-ephem

Note that if a binary wheel for your operating system dos not exist on PyPI, this will build from source. This will require your computer to have a valid Rust installation, and other dependencies may be required. If you require a specific architecture, please put in an Issue.

Quick Start

Satellite Ephemeris from TLE

This example generates an ephemeris for the ISS from a TLE. The TLE is downloaded automatically (and cached) from Celestrak.

import rust_ephem
from datetime import datetime, timezone

# Define time range
begin = datetime(2024, 1, 1, 0, 0, 0, tzinfo=timezone.utc)
end = datetime(2024, 1, 1, 1, 0, 0, tzinfo=timezone.utc)

# Create ephemeris from NORAD ID (fetches from Celestrak)
ephem = rust_ephem.TLEEphemeris(
    norad_id=25544,  # ISS
    begin=begin,
    end=end,
    step_size=60
)

# Access positions as astropy SkyCoord
satellite = ephem.gcrs      # Satellite in GCRS frame
sun = ephem.sun             # Sun position
moon = ephem.moon           # Moon position

# Or access raw position/velocity data (km, km/s)
print(f"Position: {ephem.gcrs_pv.position[0]}")
print(f"Velocity: {ephem.gcrs_pv.velocity[0]}")

Ground Observatory

Ground-based observatories can also have an ephemeris generated for them. This is useful if you need a one-system-fits all approach that includes both space and ground based telescopes.

import rust_ephem
from datetime import datetime, timezone

begin = datetime(2024, 1, 1, 12, 0, 0, tzinfo=timezone.utc)
end = datetime(2024, 1, 1, 13, 0, 0, tzinfo=timezone.utc)

# Mauna Kea Observatory
obs = rust_ephem.GroundEphemeris(
    latitude=19.8207,
    longitude=-155.468,
    height=4205.0,  # meters
    begin=begin,
    end=end,
    step_size=60
)

# Sun and Moon positions from observatory
sun = obs.sun
moon = obs.moon

Target Visibility

rust-ephem can calculate visibilities for celestial targets. It does this by defining constraints, which are True when a target cannot be observed. These constraints can be combined using logical operators, and then evaluated using the telescope Ephemeris. Note the | (or) operator is used here to combine the Sun and Moon constraint, as if we used & (and) the constraint would only be true if the target was too close to the Sun and Moon.

import rust_ephem
from rust_ephem.constraints import SunConstraint, MoonConstraint

# Initialize planetary ephemeris (required for constraints)
rust_ephem.ensure_planetary_ephemeris()

# Create combined constraint: avoid Sun within 45° OR Moon within 10°
constraint = SunConstraint(min_angle=45.0) | MoonConstraint(min_angle=10.0)

# Evaluate against ephemeris for a target (Crab Nebula)
result = constraint.evaluate(ephem, target_ra=83.63, target_dec=22.01)

# Get visibility windows
for window in result.visibility:
    print(f"{window.start_time} to {window.end_time}")

Shared-Axis Multi-Instrument Constraints (Boresight Offsets)

For observatories with multiple instruments on the same mount, you can require that the primary target direction is also valid for a secondary instrument whose boresight is offset by fixed Euler angles.

Two roll concepts are supported:

  • boresight_offset(..., roll_deg=<value>, ...) — the fixed mechanical roll of the instrument relative to the spacecraft coordinate frame. Defaults to 0.0 (instrument aligned with spacecraft). This is a property of the hardware, not the observation.
  • evaluate(..., target_roll=...) / in_constraint_batch(..., target_roll=...) — the commanded spacecraft roll at observation time, applied on top of the instrument offset. This is separate so you can test different roll states without redefining the instrument.
  • boresight_offset(..., roll_reference=...) defaults to "north" (celestial-north-projected +Z at roll=0). Use "sun" if you need Sun-projected +Z at roll=0.
  • instantaneous_field_of_regard with no target_roll sweeps all spacecraft roll angles and counts a direction accessible if any roll satisfies the constraint, giving the maximum reachable sky.

Remember: constraints are True when the target is not visible. So if either primary or secondary instrument is blocked, the combined constraint should be True (use |).

import rust_ephem
from rust_ephem.constraints import SunConstraint, MoonConstraint

rust_ephem.ensure_planetary_ephemeris()

# Primary instrument constraints (evaluated at commanded pointing)
primary = (
  SunConstraint(min_angle=45.0)
  | MoonConstraint(min_angle=12.0)
)

# Secondary instrument constraints (evaluated at boresight-offset direction)
secondary = (
  SunConstraint(min_angle=45.0)
  | MoonConstraint(min_angle=12.0)
)
secondary_offset = secondary.boresight_offset(
    pitch_deg=1.2,     # roll_deg=0.0 (default) = instrument aligned with spacecraft
    yaw_deg=-0.8,
)

# Commanded pointing is invalid if either instrument is blocked
combined = primary | secondary_offset

result = combined.evaluate(ephem, target_ra=83.63, target_dec=22.01)
print(result.all_satisfied)

# Evaluate same pointing at a specific spacecraft roll state
result_roll = combined.evaluate(
  ephem,
  target_ra=83.63,
  target_dec=22.01,
  target_roll=95.0,
)
print(result_roll.all_satisfied)

Pydantic constraint configs support the same pattern:

from rust_ephem.constraints import SunConstraint, MoonConstraint

primary = SunConstraint(min_angle=45.0) | MoonConstraint(min_angle=12.0)
secondary = SunConstraint(min_angle=45.0) | MoonConstraint(min_angle=12.0)
combined = primary | secondary.boresight_offset(pitch_deg=1.2, yaw_deg=-0.8)  # roll_deg=0.0, FoR sweeps all spacecraft rolls

# Apply spacecraft roll at evaluation time
result = combined.evaluate(ephem, target_ra=83.63, target_dec=22.01, target_roll=95.0)

Threshold Combinator (k-of-n Violated)

Use at_least when you want a combined constraint to be blocked only after a minimum number of sub-constraints are violated.

from rust_ephem.constraints import SunConstraint, MoonConstraint, EclipseConstraint

sun = SunConstraint(min_angle=45.0)
moon = MoonConstraint(min_angle=10.0)
eclipse = EclipseConstraint(umbra_only=True)

# Block target when at least 2 of these 3 constraints are violated
constraint = sun.at_least(2, moon, eclipse)

result = constraint.evaluate(ephem, target_ra=83.63, target_dec=22.01)
print(result.all_satisfied)

Notes:

  • Constraints are True when blocked/not visible.
  • min_violated=1 behaves like OR over violations.
  • min_violated=len(constraints) behaves like AND over violations.

Instantaneous Field of Regard (steradians)

You can compute the visible sky solid angle at a single timestamp for any constraint (single or combined):

from rust_ephem.constraints import SunConstraint, MoonConstraint

constraint = SunConstraint(min_angle=45.0) | MoonConstraint(min_angle=12.0)

# Evaluate at a single ephemeris index (fastest path)
field_sr = constraint.instantaneous_field_of_regard(
  ephemeris=ephem,
  index=0,
  n_points=20000,
)

print(f"Field of regard: {field_sr:.3f} sr")
print(f"Visible sky fraction: {field_sr / (4.0 * 3.141592653589793):.2%}")

Notes:

  • Exactly one of time or index must be provided.
  • Return value is in steradians, range [0, 4π].
  • Constraints are True when blocked/not visible, so this computes area where constraints are False.

JPL Horizons Fallback

For bodies not available in SPICE kernels (asteroids, comets, spacecraft, etc.), enable JPL Horizons fallback with use_horizons=True:

import rust_ephem

eph = rust_ephem.TLEEphemeris(norad_id=25544, begin=begin, end=end)

# Query Ceres (NAIF ID 1) using JPL Horizons
result = eph.get_body("1", use_horizons=True)
print(result)  # SkyCoord position

# Also works with moving_body_visibility constraints
from rust_ephem.constraints import moving_body_visibility, SunConstraint
constraint = SunConstraint(min_angle=45)
visibility = moving_body_visibility(
    constraint=constraint,
    ephemeris=eph,
    body="2",  # Pallas
    use_horizons=True
)

TLE Sources

rust-ephem supports multiple ways to fetch TLE data for the TLEEphemeris class:

# Direct TLE strings
ephem = rust_ephem.TLEEphemeris(tle1, tle2, begin, end, step_size)

# From file path
ephem = rust_ephem.TLEEphemeris(tle="path/to/satellite.tle", begin=begin, end=end)

# From URL (cached for 24 hours)
ephem = rust_ephem.TLEEphemeris(tle="https://celestrak.org/...", begin=begin, end=end)

# From NORAD ID (Celestrak, or Space-Track.org with credentials)
ephem = rust_ephem.TLEEphemeris(norad_id=25544, begin=begin, end=end)

# From satellite name
ephem = rust_ephem.TLEEphemeris(norad_name="ISS", begin=begin, end=end)

# Using fetch_tle
tle = fetch_tle(norad_id=25544)
ephem = rust_ephem.TLEEphemeris(tle=tle, begin=begin, end=end)

For Space-Track.org integration, set credentials via environment variables or .env file:

SPACETRACK_USERNAME=your_username
SPACETRACK_PASSWORD=your_password

Documentation

For comprehensive documentation including:

Visit rust-ephem.readthedocs.io

Building from Source

A full Rust toolchain should be installed.

# Install maturin
pip install maturin

# Build and install in development mode
maturin develop

# Or build a release wheel
maturin build --release
pip install target/wheels/*.whl

License

Apache 2.0

Contributing

Contributions welcome! Please open an issue or pull request.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rust_ephem-0.13.0.tar.gz (727.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rust_ephem-0.13.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

rust_ephem-0.13.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

rust_ephem-0.13.0-cp314-cp314-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rust_ephem-0.13.0-cp314-cp314-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

rust_ephem-0.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

rust_ephem-0.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rust_ephem-0.13.0-cp313-cp313-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rust_ephem-0.13.0-cp313-cp313-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rust_ephem-0.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

rust_ephem-0.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rust_ephem-0.13.0-cp312-cp312-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rust_ephem-0.13.0-cp312-cp312-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rust_ephem-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

rust_ephem-0.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rust_ephem-0.13.0-cp311-cp311-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rust_ephem-0.13.0-cp311-cp311-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rust_ephem-0.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

rust_ephem-0.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

rust_ephem-0.13.0-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

rust_ephem-0.13.0-cp310-cp310-macosx_10_12_x86_64.whl (2.5 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file rust_ephem-0.13.0.tar.gz.

File metadata

  • Download URL: rust_ephem-0.13.0.tar.gz
  • Upload date:
  • Size: 727.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for rust_ephem-0.13.0.tar.gz
Algorithm Hash digest
SHA256 673bb8af17c552ca972c5b4113430c19a2e0349b8444f400b5b7e3c84e7f689e
MD5 84d0f3f10c72b44a4b34b1f2f23456a8
BLAKE2b-256 a9764af22e8ea924836cb1dbe205ce95973e1110a7894a8efd208ceaa72ab0e7

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8f4c73e7e016d3355bc49b80ec97dd82e0f373a4161e5e9f3af7360745d364fd
MD5 946e2e1cf7b8ad76723d217cc0d80fb4
BLAKE2b-256 e511e40141a0077c21a7e47d81b6a6def3e0e973101dc9f78ac09cabc7af4c20

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b445af3f08a5047e4f4ff06d6855514bb372b83bfad474eafa011cfbfb2eea5a
MD5 338d139f05404637960309ec49ae1962
BLAKE2b-256 33fe60dce145a2a9ba3212a3fcafaf21d4d37e16d1aec0b9ff13ce8535af9788

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0c7dcee212fb86b33f1d505131578651b677d0deae26b5c315985b8fb0c481f6
MD5 75155ca5c6e1b169f7e71d54f42c75fb
BLAKE2b-256 7fc9220f37fadcc86d5ad396de2fc03d1571befff1d3d7823ecdd4ebf7b7e91c

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ed93eed34f6643a8c0bb9d72de6b07fe6e9cc9b770d68f8e524dea2fe8ca086b
MD5 b0793ef03082105b98fb9e9297f322c8
BLAKE2b-256 8a4434fb82a2a3d9b2f254416a1fbbf995596baa01554ca2a002f443b3e3b963

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e686bafd88205b3e950da83bb34693e597092d52e9b2226264bb219522716c5f
MD5 262d6b01c6992a144cef2e48226b60d8
BLAKE2b-256 84f1f637416499c74554b1a76d6d0fce18f6e7500052669fed1bf26bd0170c3d

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 def4153746124f8cae7753342942dc91b9bac6be3c5862319c509326657bad85
MD5 0ca24b7d81ccf8fd6c0e4fb8b9702c44
BLAKE2b-256 e63b13013899fa973d8a70aa90cb659253b5171e655dd738fe785c6a166ee56b

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 510f5132c56b815d7864bba800ea768b01e2c4074a42a6f7b4117b30d8cafe14
MD5 e999d0df8831b01db1b2f306e930386b
BLAKE2b-256 53cbb744fae45df75f67d1d7bf5f8c92c150706f52848fa08972fab8bc795aef

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c55124b75a8c16dc76a8d74eb591cfe46a3f3a2f6dc02d204190c2ca28d1a696
MD5 56e4c0198070eb8e2a9b485e385c8d1e
BLAKE2b-256 4c925334dbde196b7d30153559f832582bce8c1f8990b8a34d275d668703e842

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc9dbf94f2731c3170d1e26f48e1b602fa77572bca7d3a799696e003009a53c2
MD5 9faeb7f07b4aa71751716076b9780c1b
BLAKE2b-256 d795c3a3bb14614060e56cfd72a74d0c109ba8e0679635ff485eb9e4ee74d51e

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0816cf08238d967aef6a4ea3b0fdd5ba9650e339bf31046271f845f890e72a20
MD5 6d8f9fdd55e6740436e3996be2f0e398
BLAKE2b-256 761001b8734a7f24abb339cef92a0eeab77283da434192d6be9d93751d960b6d

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9536a5551ad60394186947eef005c1ac752e078888f21fa79fdd0f4c28890d01
MD5 d9aa35e8cf443a36e3c0269485f7bfd9
BLAKE2b-256 7a08a841a02d5780c5f49671c612ab5c5a9d0f22017ef07a07ccce1a159dfb0f

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7e8c23a94064296f3a5ead84c404bbcd3e9ca864d0890aca0db2919e5a4d35f7
MD5 97ccb0293d47fc14f75c89c8436a280f
BLAKE2b-256 5a0a4c7a103276023b52fcf987cc2aa5a34a2f18266ac883ae334a89faff71f2

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5f79677ff3d7ee7349ec066e05f9e329bb261119e005d9679801898891a558aa
MD5 286f7821e05042d12af5b4da0a509f8a
BLAKE2b-256 327f0d9bdbf183dc56342ba6864d85587dfe373d18266c5ed55d9e632960e10c

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cefaf37662fc762298fe7fb6f91c701d31891e86df370ce07f0a98475324caf4
MD5 8069ff39e4e3ded06330d61ce1fe8d18
BLAKE2b-256 da78a5e007bfeb53cf6a3d4582a6bd3ac278efe6331a6d1d1ed06f0d528c4018

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 33335db4e82a667ddeea97acf2198a08acde130801626f008f984484a3795f73
MD5 8c47e028b58c75d2f8a31e6e24a70f33
BLAKE2b-256 678f60e4f40f67e5e0e12471d57cdee4c758ac5fe774c738ade29622d5014947

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9a4ef06a5dd7e40b4fc3b8e49a31c9ad392004adff9bfbe9a296cf7e4aafc0b6
MD5 e1bc1c6f60b8ffef331f3148603fa8a0
BLAKE2b-256 4b548dee27dd08732c220628e7b4f78a27c1f0b37bc93b7a023c57f999d3d639

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 84ad37250fd02d43ba3328cbf96be82c1da3b4760639855488e4b76eaf170525
MD5 ccfe3cec8157d148f7294a6c8ac9468a
BLAKE2b-256 d8dad75ba8680f001bede4f1f58fe4121d29a12d62a5c50fb4db7e9b3e8239ee

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 193994de6db41a01bb192a70a012db38a92ed50c75f3089679b823cb4f07c60c
MD5 0e472e840817885212362460e248e65c
BLAKE2b-256 d9f58013932c7d0c460f2886d404901566b1cf14007a5c4c056b91fda3c59719

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6b538f19a709d90553ae50a40fe1ab0464983786b2721645f1bd170161189c6
MD5 2fba39dddaa0617e23c68a04e5148a6f
BLAKE2b-256 7bade152f30c3b664249bf01cf87de8ae9ff438e9012c506b604a6cbe6433725

See more details on using hashes here.

File details

Details for the file rust_ephem-0.13.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_ephem-0.13.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5c469bd8fc2ac937932c4cca27374e7faecfcfa293c60d6db32269ac2b271300
MD5 4c68a3221e57c68cde824f3e6b96089c
BLAKE2b-256 b684654b70a6f7c2e9b57eebb6a0e199c448f87514113ab79cdbbd4498579aa9

See more details on using hashes here.

Release history Release notifications | RSS feed

0.14.2

21 files

0.14.1

21 files

0.14.0

21 files

This release

0.13.0 This release

21 files

0.12.0

21 files

0.11.1

21 files

0.11.0

21 files

0.10.1

21 files

0.10.0

21 files

0.9.2

21 files

0.9.1

21 files

0.9.0

21 files

0.8.0

21 files

0.7.0

21 files

0.6.0

21 files

0.5.2

21 files

0.5.1

21 files

0.5.0

21 files

0.4.0

21 files

0.3.2

21 files

0.3.1

21 files

0.3.0

21 files

0.2.1

21 files

0.2.0

21 files

0.1.15

21 files

0.1.14

21 files

0.1.13

21 files

0.1.12

21 files

0.1.11

21 files

0.1.10

21 files

0.1.9

21 files

0.1.8

21 files

0.1.7

21 files

0.1.6

21 files

0.1.5

21 files

0.1.4

21 files

0.1.3

21 files

0.1.2

21 files

0.1.0

21 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page