High-performance satellite ephemeris and visibility calculations with Rust and astropy integration
Project description
rust-ephem
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
SkyCoordoutput 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 to0.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_regardwith notarget_rollsweeps 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
Truewhen blocked/not visible. min_violated=1behaves 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
timeorindexmust be provided. - Return value is in steradians, range
[0, 4π]. - Constraints are
Truewhen blocked/not visible, so this computes area where constraints areFalse.
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:
- API Reference - Complete class and function documentation
- TLE Ephemeris Guide - Detailed TLE usage and Space-Track integration
- SPICE Ephemeris Guide - Using SPICE kernels
- Constraint System - Observation planning with constraints
- Coordinate Frames - TEME, ITRS, GCRS explained
- Accuracy & Precision - Time corrections and error analysis
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rust_ephem-0.7.0.tar.gz.
File metadata
- Download URL: rust_ephem-0.7.0.tar.gz
- Upload date:
- Size: 622.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ed25b8f5f720c368fd32d9af0f28b73a8532953c5d3aa6ed6bdaf05e1370d39
|
|
| MD5 |
53cba90b8263c6a8d4287932ed0ac00e
|
|
| BLAKE2b-256 |
bc7cf1332e51b46fee5e813a11a67232397bacb50c2c1a87de99c3f0a7bd278b
|
File details
Details for the file rust_ephem-0.7.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2f07ebb3f72e9993f7a06b9b897d841fb96b65cdd30977b6ff551a998dde171
|
|
| MD5 |
02c86e686a5f247e7d9b5cac64f315ab
|
|
| BLAKE2b-256 |
842eb78d708c7594fa4084260b773172f5efae6fe4a3ba1a458bbc8dd78047c5
|
File details
Details for the file rust_ephem-0.7.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfc39e26e06614c1356ff2a793868442dfc87dc1d151489474790fd4e2f7d1df
|
|
| MD5 |
59399143220189fcfea5d9ddbfa4c317
|
|
| BLAKE2b-256 |
cdb69e3e5673ba6b41e56e821b963fdcbb9ae9e64527f1e4de8baa8ae5ef4adf
|
File details
Details for the file rust_ephem-0.7.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.0 MB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
75d9abf2f7f5b8d752d84df3e529b92409ca2cc0810c95927e118e7248e471f1
|
|
| MD5 |
30ed1cd42129b69e1e532d268f7a972d
|
|
| BLAKE2b-256 |
d00419baaed793f386b105989bbdc02f34ee1df2f44ed1e61e13dd26e74d5cc9
|
File details
Details for the file rust_ephem-0.7.0-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.14, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2669abe4e364628fcc5fc62a4e15e54bbecb9ab5a5d1482432e44afd84ca261
|
|
| MD5 |
1bde433d00c341771e3fe27000b72241
|
|
| BLAKE2b-256 |
b240d485e97dbb643d59926887f59b63c1d32553c8f8c562a8796de2c40f0758
|
File details
Details for the file rust_ephem-0.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09e47e38389af480a47b2d420a30e5e3cb326ac2814600a773e44b3f0f98a002
|
|
| MD5 |
b33fd41fde074ef554c3ac85489d5ba0
|
|
| BLAKE2b-256 |
43e5bdbf2d0cb948985bfc9b3bf36ef87bacabc690cb13d9f243e602a9d821dc
|
File details
Details for the file rust_ephem-0.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1779e245a3afb155bc77e43a931c5dd7765a10c7efe87329e83d0c167156d027
|
|
| MD5 |
dcbd4118eb3caa007aa247aef65ef661
|
|
| BLAKE2b-256 |
b992112be94777041a07382fcd6e3d56629f2ff022158305b62e3eb92bd284ea
|
File details
Details for the file rust_ephem-0.7.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18dbe2c4ee301da78827b7e6b232d47fbc408acd1ad0e58b4dd94c4b339877c5
|
|
| MD5 |
ae6905a1fb2372cfe18b986438acf363
|
|
| BLAKE2b-256 |
bcfa94a3a654beb709fbf36eaea1fa162f147d3760c2db6f54a81896ec94a284
|
File details
Details for the file rust_ephem-0.7.0-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aca4cdda6e83075f8397c23113c00a00b25c20225341af17de6f97e60ba25790
|
|
| MD5 |
3a6f2d097021209fdb2c5fcf8819eb5f
|
|
| BLAKE2b-256 |
37b169250b94ab9c6787c4af177d39e71d45f50cfb7c76073fa8bfc38dca11e0
|
File details
Details for the file rust_ephem-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86188aba94296ec2a205ebaf4ce064b8389343b34be4602328e8fd976e911dd1
|
|
| MD5 |
281aa9e5bdb046e8d226e1f998bd8ffd
|
|
| BLAKE2b-256 |
fd76867ae3fc3f921023c97128942091bb8aa9d803ffc4fe4438f900be04c71a
|
File details
Details for the file rust_ephem-0.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dff7816b933b36f34a3d99a2e640a290e3bf0c7be0f2a80b3b668e797ea71bb5
|
|
| MD5 |
02672439e550c4e3e7131497297b6dff
|
|
| BLAKE2b-256 |
cdc8a941c55598334bbca166760e280515e00e6ee1e2fb358167e0490dbd96d6
|
File details
Details for the file rust_ephem-0.7.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9de6da3b885849352485df62bd3d395326fba332ac3c04ffdf86693673ef5f3c
|
|
| MD5 |
65deba68c3856f39294725d8cd049dcd
|
|
| BLAKE2b-256 |
762b6467d372950ac7113ff7a1ec18b218dfd5d9126de63118a39e77a0ff14e5
|
File details
Details for the file rust_ephem-0.7.0-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc6752cbb0a67221a0e636ee03d72ead0d22266c85c6e6ffed48689653b21a1a
|
|
| MD5 |
b21e4f84ffaecbeec8f29d0389aa6e9a
|
|
| BLAKE2b-256 |
84ffb6ec4057543d67664af0594b733f939b61d936230590d075af6df440c72f
|
File details
Details for the file rust_ephem-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21512daba67530ac27473d74d43f790b789c6ff2bf916f951dff81e3ca9f7a27
|
|
| MD5 |
de5bf5c3b1f6de7bce31adf6fff0c632
|
|
| BLAKE2b-256 |
245a513ded5bf1e596a384644c0e2b3060209a5a688b1a98706d99a2523d1366
|
File details
Details for the file rust_ephem-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8cb8c6eda5af878f203b12780da36f8029e0f053267b93f1c044550bd0b109f3
|
|
| MD5 |
22525eb76f85f0e5bfc011a3503082cd
|
|
| BLAKE2b-256 |
90c60d3cf2c98a906a97d6860cae02b9b73c0f8f7d6d48bdfe75e4fe8818f824
|
File details
Details for the file rust_ephem-0.7.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6749fe39d90d49c2c5bf7f19f3f427a9bbe68f888fd342312fe95f72f6766e87
|
|
| MD5 |
a94e1d3a33a170b8826704631e2c6b56
|
|
| BLAKE2b-256 |
506f0ce23bbe1445b091fe40bfa7312b5c8475520611c43b36f16c2d5425763b
|
File details
Details for the file rust_ephem-0.7.0-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef1af1d14980f4136f2ea9dde8b7c884aafb6cffd78341c2464dadbc0826422c
|
|
| MD5 |
103d44d4cc4c6d263f4743075de04e88
|
|
| BLAKE2b-256 |
9d56ab349eaa995b86a9aa2615c2ff8bdb34ac292f09009c7866c2868100918e
|
File details
Details for the file rust_ephem-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c3dffa11189dc5ca9dd62208129d61f7f181b27d26f774eb913bba85fe448dc
|
|
| MD5 |
901a5400623279af3abcda02ccbc9112
|
|
| BLAKE2b-256 |
76cc806485e7e5597817628277a1ffd6fd69be9d17b2eef351136c5a5be37005
|
File details
Details for the file rust_ephem-0.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 2.2 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f6aea4aa231ce9f353dcd090b4118417ff8e4a63540c33e290472cc3add36ce
|
|
| MD5 |
3a5ca17454e2680b7367f50cd75bea6d
|
|
| BLAKE2b-256 |
fcfc36e95d633b8215812ba5b9d12e52148ecd8c01f8d05b2761145b440d48fb
|
File details
Details for the file rust_ephem-0.7.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.1 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9992524e0df693b8b4943ea70dafb33c9399716cab11a2586673a549b50cea93
|
|
| MD5 |
60d60a3d90ecf1623bdcd04103ee4b24
|
|
| BLAKE2b-256 |
d801bf99add0d988c079928274ae3ab77711a125ca03feccd1bf9fb47d1466f2
|
File details
Details for the file rust_ephem-0.7.0-cp310-cp310-macosx_10_12_x86_64.whl.
File metadata
- Download URL: rust_ephem-0.7.0-cp310-cp310-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.3 MB
- Tags: CPython 3.10, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2f12d3c601652039309a62ba7cd30fbe548722eb4dd130f459f877b9760f8202
|
|
| MD5 |
aa48306b01b3964f000a0be5d32e0133
|
|
| BLAKE2b-256 |
df76e7446b0d6a82a8c43fb74b180ed9dfb7b3bdaf0a2cd5906ce32014fa71e1
|