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.14.1.tar.gz (749.9 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.14.1-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.14.1-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.14.1-cp314-cp314-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

rust_ephem-0.14.1-cp314-cp314-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

rust_ephem-0.14.1-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.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

rust_ephem-0.14.1-cp313-cp313-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

rust_ephem-0.14.1-cp313-cp313-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

rust_ephem-0.14.1-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.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

rust_ephem-0.14.1-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

rust_ephem-0.14.1-cp312-cp312-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

rust_ephem-0.14.1-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.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

rust_ephem-0.14.1-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

rust_ephem-0.14.1-cp311-cp311-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

rust_ephem-0.14.1-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.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

rust_ephem-0.14.1-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

rust_ephem-0.14.1-cp310-cp310-macosx_10_12_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for rust_ephem-0.14.1.tar.gz
Algorithm Hash digest
SHA256 81465fcedeef871fcef099165c596cdf791612d04a218d4678731886666e1ea0
MD5 118e52bad7630998ad8ace0c38e41929
BLAKE2b-256 a4523c767906d31a3851696818140a98f41319125c7eebcf17c970bb706e0a18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be19fff3be2c026f46daec79195bd5d861cb3a58c238ff99fd72b59d47b62f58
MD5 a5f6f98f5d348346d1947392f63f1f19
BLAKE2b-256 81e0fa07ce11a20a0bb8c95464e8a2f2af8787c9340e3f023b8959ba706556d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2284fe217a134cc6337529647a5cd13e4d85dc85833521614c72ff0d4c190441
MD5 5ee39a5bd4da0bcaf8df06dca4ab4f98
BLAKE2b-256 13dad3d9a2eb73e4dc0dfdd232e6859a9c522dcabab306f2b88931382fa9c602

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e4a2d8178f5240e411c5cf2190b06a67683747c7a535e9a5da8490d3c58321ca
MD5 62c9ab8fc38ca3ea2d79947b98d33b45
BLAKE2b-256 0347da31ef062e35bd15d6013de817550adcaeeabee62455c009ff3e6015847e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 842119d4542ebfdeaf032b66e9b2367c5b20905bd549f02dfe39c859bac7bedd
MD5 259dbc70b673905b642a0534a8a97bc4
BLAKE2b-256 9e3b1ce2c396d1491c32fc71992506d1347012e3dbe8b185f97e41ee880f7e81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b1f5cdb9e0a5acfb6a49dda7937bb4c2c9a0a3095038c093b3f51ec7909149ec
MD5 f7143c540b3eadda68c5083d6a70c88c
BLAKE2b-256 84ec6b7f509c55f6d57933f1d5aa4ac86604effe6eb443b1dcdb1fd62934b45b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 48a1a0eb1ba7916d4e309bb862d6df6badfeb479d8b0649619cef4fccd77e770
MD5 4fb1478be5355fc590d9374ce84a68bf
BLAKE2b-256 d678a444b41039319e0dc80467e87262d24e31c3ab09baff1d9d3f514802d1ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9b75e8fca9118b53f2741870fb0f430d5dd98a85c49176e9c061b4d4e27c8810
MD5 977bc4032f01697e0bf5d554c5978887
BLAKE2b-256 5a7833f8674ea768b447fbd125dac48adf218289376ab89e088bcab27cf00a2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4696529dfb4b85723e3c5a5342a31e40798290323588f7b82be0501e678f1ec7
MD5 65825d18e834d094b0e0c8f4f71afab2
BLAKE2b-256 d8ed54a5daeba4fa3b54df9aaaf405d095e7720ae30822084a00b4020b10c348

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ef7b8709ae9853f8c729e9b9c8545c69299bab6a0763f3515d7adb1e6785d4b
MD5 00cc4001a7b4e7aced9b98fb07b2892a
BLAKE2b-256 617b41bb995459b24d3d0e2a38a39f584117740ef7770d864c376090b3ad437c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3d2bb8c2ec08da2cb92f5c13d93dbf62c90b029739a3393f18d40061268d0e7a
MD5 669c8a45f817fa8912108fd69dc51e69
BLAKE2b-256 7375f3000680fa6d2613076ab6576d80eeb39880be7f411248a0b0db6a396d66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f855b04da1945e22cafaafbe9d6b6bc216a71442f63cce97dc90a4e538bfe044
MD5 8b659d5592097a621335c98dd15c8091
BLAKE2b-256 e7bcdcb2b8bf0244b74a9ad741453896f6e32e7f9812df73dc5d00fd11052cfe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b43757b46b0ae42da272e4940ba71a251a774409a54083e9058947e39e78108c
MD5 611cac57b796df263108ff043c7b13fb
BLAKE2b-256 b9b72b98772c50419d9f41f73399309efa5c92b2f80d6d43aa7200254ee136d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d9d1b9aae7a29fa453b1163113fbdb6f59c86487739d08c052f333c525243491
MD5 e381f1595229ec0ed62b8e3d033ac868
BLAKE2b-256 6dc23a0ec368b9cbaa7ed235752de280ca53787d32cc5969c849de869e23f6f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d96a7ae7591d041e2f25f64cd67bdf7eba4e00676bf80ddb7949f495897cf43a
MD5 fc1c5adce655bae4515a54735a70feb7
BLAKE2b-256 d6076054130f562807c5ff651689812b835fba6e0cba6fdeb4885d14ffc0b286

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a311a2e749b2666abe533a46eacd8092b20a90ae02a835c16de35a9051d4da60
MD5 1e3d12a041c6040ac5b825ab20e691ce
BLAKE2b-256 890f547affd24e66fbc924abf3a998927a2f8d26535399cc0585435365aa1f2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f928c67d3e546a523f70c08c2ae100211607eae39eaa23eb4d230fb0ec8233e1
MD5 979a1b7c9adf33d53a833cd084e39bec
BLAKE2b-256 3e9e534a7030ef1f6edafb750da1edf71076f585c092a9b51babfcdbc1727d5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ddeecea9e1cbaebebfe34ecb5ae582eda7cb30f3127d9c2191b1e18f692ba9f
MD5 6eca7a46c505d3ae7194482f49bb3308
BLAKE2b-256 c18b195e8a2a9e2805e3bb87cb4d102fd5a2e4ccd8e51b1e0f0c9679c4488372

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 622cc1a7f87bec87aa5b3fb5b71d921a123470f75ca61216c95b2cb6ebb6c679
MD5 70766d4c91388f755c103af5d48589cc
BLAKE2b-256 8bc7b8e98440af83668d98b504c09381d8fbb16154a7476ed95bc85e75060937

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3ea101970f68135cbc464de2ab809986cfeb232c57ea069d0efb29734abc850c
MD5 3f0e4e0d141f4f1685120827734e13b2
BLAKE2b-256 660bfe42a03d29144ff80a9778d7ac5b506812a4e45e0f5067599fbf6a263909

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rust_ephem-0.14.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 424aab641708fc19b86f1f389a18e7a42ef66aeb5a452d63453508b0e31f7461
MD5 ecac4622b3393d640651daf5184645b6
BLAKE2b-256 22766a3c8590ae478bd239f47e87bedea7e8127df90220656169ce4f18eeec72

See more details on using hashes here.

Release history Release notifications | RSS feed

0.14.2

21 files

This release

0.14.1 This release

21 files

0.14.0

21 files

0.13.0

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