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.

Metadata

Release files for rust-ephem 0.15.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rust-ephem 0.15.0
File Size Uploaded
rust_ephem-0.15.0.tar.gz 756.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for rust-ephem 0.15.0
File
rust_ephem-0.15.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
rust_ephem-0.15.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
rust_ephem-0.15.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
rust_ephem-0.15.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
rust_ephem-0.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
rust_ephem-0.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
rust_ephem-0.15.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
rust_ephem-0.15.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
rust_ephem-0.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
rust_ephem-0.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
rust_ephem-0.15.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
rust_ephem-0.15.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
rust_ephem-0.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
rust_ephem-0.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
rust_ephem-0.15.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
rust_ephem-0.15.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
rust_ephem-0.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
rust_ephem-0.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
rust_ephem-0.15.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
rust_ephem-0.15.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details

Total release size: 49.0 MB

Release files / rust_ephem-0.15.0.tar.gz

Download URL rust_ephem-0.15.0.tar.gz
Size 756.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d23ad80cb0b1daa92ccaad238d27baeab532fbc15572380045fc6c4278f59011
BLAKE2b-256 checksum
How to use checksums
45928ced7c3117c136107e8cd87883f19da4500b0a7c7dc243e6a77a788182cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rust_ephem-0.15.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.6 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2071872a5e23eda93e55cc220eedf946b0ffa800da62aea4896513a22404d7f1
BLAKE2b-256 checksum
How to use checksums
fe85977d728ffd2d611cb057cd4fe8802a8a0aba892bd5b5180d54577a2dcffd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rust_ephem-0.15.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.4 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
f33e88142a8ce6a0353a21b5888d32ef76f6f85076576225f0312c9240966f62
BLAKE2b-256 checksum
How to use checksums
6743f3e9580cda427916ae4d7e36e235a1a1afc87d236c37424123d593b3c0a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL rust_ephem-0.15.0-cp314-cp314-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
506645cd31bb2a6169a4c816a36aa9dcc5377b81e289b52daba8715c1c4c0c33
BLAKE2b-256 checksum
How to use checksums
16691f4b86930a2ed3c738fe31cf467c1da4e34dcc6a33c3ee2be3b42b632e16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp314-cp314-macosx_10_12_x86_64.whl

Download URL rust_ephem-0.15.0-cp314-cp314-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
7c6605119707e72c41908f76c61f7c6ed45f0c2b90712b53e3dc5bbc43e7728f
BLAKE2b-256 checksum
How to use checksums
62d7a8405e095c3bb9d11fd74addfd1c180769979f708f1a6818222a9ac55cce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rust_ephem-0.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.6 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e1db7d1ebce32001f878ec0326abf46217437aaf83af4b2762fe6e69446c18d6
BLAKE2b-256 checksum
How to use checksums
baf3fcf38ff8459000dcd68fb5722c81e1e3bad0403bb5fb12f07e3eb2de67bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rust_ephem-0.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.4 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
fe1c41a5f1e68d4c192855aa7ee08f888bfde92586a54337e5dea8d8ec78640c
BLAKE2b-256 checksum
How to use checksums
ccd477029a004a5bb980f5cfb26e72dbcb9309c7cae4d5390d903d0815da7e15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL rust_ephem-0.15.0-cp313-cp313-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4ac683142c588433a1006e5b2462d5889947bdc1bcab3f633bb0c71b9da5fa1a
BLAKE2b-256 checksum
How to use checksums
b429d99fc8e1d415d95377f960d6bf74275ee8e24601b13c3aff9aabaaa23736
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL rust_ephem-0.15.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
05a021d8ba6cc7e75c61c5560ea542401f34c2e4c5d26b22d94df98933026ec1
BLAKE2b-256 checksum
How to use checksums
5b0953650e022f582b25852c05eb8eabe6723f4aa227d90bb827960c2fb02a32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rust_ephem-0.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.6 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d23b6d11ae0b6656a5af2d202257456f4b64464126dae0260236ba1d70714747
BLAKE2b-256 checksum
How to use checksums
e9c62672e40b9daff1a546dece20136446b0409a45330aaf26edd8885de61ca6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rust_ephem-0.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.4 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
18ef4ce30cf1bdb9b873dc163f1d6e5aabdd221d4efeab0236d55077b1ccecf3
BLAKE2b-256 checksum
How to use checksums
c4875e0b759515fc9a17546d4feba32159db09ff2f2cb7d8f5d195162fd9472f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL rust_ephem-0.15.0-cp312-cp312-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9bdc7dfa6a97c0ba71806952c8c71614cd19a56e4778a94743503762fbee1056
BLAKE2b-256 checksum
How to use checksums
951c2a5cdd8639b1d7c62533083e62ed58ca72f31edbf91d85d66b393c343c35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL rust_ephem-0.15.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
fefb47d465c187269c07e278c109d0ed81b0d3ca0ca5dc52d1bcac4041904989
BLAKE2b-256 checksum
How to use checksums
2a8389d30c377361ffc0fc28cbcfdca81df333ed879932ae02435a5a955c30c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rust_ephem-0.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.6 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
980e221cbc1de799daff98fb2dbaee6346749ccbe3ad4ebe93106c9147ae8584
BLAKE2b-256 checksum
How to use checksums
f6bb08122b191a715f51634fb3661806d9ab8fddfdb7d4beb1cfef4cdec67f77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rust_ephem-0.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.4 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
a98cbbb34dd164bae284572ff3bdbbd0d0992c3930cae72db75ee5d57e6a555d
BLAKE2b-256 checksum
How to use checksums
85d15a73f9e6df4e2c9b11d7a6da2de3b413d0a32ee480a69d784643d7c46dd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL rust_ephem-0.15.0-cp311-cp311-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7403a5698b327892ea86ce99dc9e0f34b3d5b8987176110da88b53c70e0a83d5
BLAKE2b-256 checksum
How to use checksums
55e0c761ef82755e46b168c52016c6901407a6df66b33a15ecd459e82e9711dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL rust_ephem-0.15.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
138f29107637dde6a7a446c0f0370cc6c8cd9bee8b739ae9c61708de312894c5
BLAKE2b-256 checksum
How to use checksums
43bf50318a3028c17275ff87261fd09f180a35c52bea63871f6e2c71dab5ac11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL rust_ephem-0.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.6 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8d0bd8a2b972a035d8fa2861174585a7f3c1688f7e16b46f6734e3235f3a34ed
BLAKE2b-256 checksum
How to use checksums
4f239cb21025efdfeca849b661d9a281ad1f22488cefeaf262878f2a7ae12406
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL rust_ephem-0.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 2.4 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8b84a2c5163f5252f12bf54bb5ee046b4424bc718da74e714fff025b7ffd0287
BLAKE2b-256 checksum
How to use checksums
2eadb3e84ab428e6e78cfd66bf7ad362405fca8ca32ab6596bda970f5c11b347
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL rust_ephem-0.15.0-cp310-cp310-macosx_11_0_arm64.whl
Size 2.2 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c7d472bf39411fc9a2770a940af20fcd7392b7d41b5719b4eb2a9a7cee45c434
BLAKE2b-256 checksum
How to use checksums
042070ce6dd9178d0cc4dadb3b536f3d8b11ec0ad28423866a853d84834e9280
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release files / rust_ephem-0.15.0-cp310-cp310-macosx_10_12_x86_64.whl

Download URL rust_ephem-0.15.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 2.4 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d0c5f7c2978a3700b96bd534636b6cf8d4157f1ec2b001d9bade78a428a56417
BLAKE2b-256 checksum
How to use checksums
efa9461ff1475cb2fe091ca60c5b9d6a5428e9234b994926aff740cb25eb3d25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via maturin/1.15.0

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page