jayeshmepani/jpl-moshier-ephemeris-php
PHP 8.3+ FFI wrapper for the JPL Moshier Ephemeris C library, exposing all 204 jme_* functions and native JME_* constants. Supports JPL, Moshier, and VSOP87/ELP2000/Meeus engines with no hidden rounding or output reshaping. Requires ext-ffi and a compiled libjme shared library.
This release updates the PHP wrapper and bundled native libraries to JME 2.0.0.
Extended-body identifiers now use JME's reserved negative range, separate from the core body identifiers. Applications that stored extended-body numeric values should switch to the corresponding named constants. The PHP method names and function signatures remain unchanged; the wrapper continues to expose all 225 native functions and 478 public constants.
All bundled native runtimes have been rebuilt from the JME 2.0.0 C17 source at commit ab153fd7a58705cd1732bb226cb5fb2655f5c290. The package includes Linux, macOS, and Windows builds with their matching CALCEPH libraries and runtime notices. The Linux x64 library reports version 2.0.0.
This is a maintenance release focused on internal code quality, performance stability, and compatibility.
Compatibility & Stability: Updated internal code structures to align with modern PHP 8.3+ guidelines.
No changes have been made to the public API, and this release is fully backward-compatible.
libs/:
ubuntu22 and ubuntu24 versions based on system glibc detection.Patch release focused on strict JPL engine validation and configuration safety.
JPL is selected but no usable .bsp kernel is availableIf the configured engine is:
JPLthen the wrapper now requires a usable readable .bsp kernel at configuration time.
If no kernel is available, the wrapper throws immediately.
There is now no silent fallback from:
JPL -> MOSHIERJPL -> VSOP_ELP_MEEUSDownload kernels from:
1.0.1Initial stable release of the PHP FFI wrapper for jpl-ephemeris.
204 public functions exposed462 public constants exposedJPLMOSHIERVSOP_ELP_MEEUSAUTOJPL is selected and no usable .bsp kernel is available, the wrapper throws immediatelylibjme and CALCEPH runtime dependency supportThis package is a PHP wrapper around the native jpl-ephemeris library.
It is intended to provide direct access to the native JME API from PHP through FFI while keeping output behavior as close to the native layer as possible.
JPL kernels are not bundled in this release.
If you want to use ENGINE=JPL, download .bsp kernels from:
Then configure JME_EPHEMERIS_PATH to either:
.bsp file, or.bsp kernelsJPL
.bsp kernelsMOSHIER
VSOP_ELP_MEEUS
AUTO
1.0.0This is the first stable tagged release of the PHP wrapper package.
Prebuilt runtime libraries for the PHP FFI wrapper.
Each archive contains:
jme.dll, libjme.so, or libjme.dylib| Asset | Runner | Notes |
|---|---|---|
jme-linux-x64-ubuntu24.tar.gz |
ubuntu-24.04 | glibc 2.39 |
jme-linux-x64-ubuntu22.tar.gz |
ubuntu-22.04 | glibc 2.35 |
jme-linux-arm64-ubuntu24.tar.gz |
ubuntu-24.04-arm | glibc 2.39 |
jme-linux-arm64-ubuntu22.tar.gz |
ubuntu-22.04-arm | glibc 2.35 |
| Asset | Runner | Notes |
|---|---|---|
jme-macos-x64-15.tar.gz |
macos-15-intel | macOS 15, x86_64 (Intel) |
jme-macos-arm64-15.tar.gz |
macos-15 | macOS 15, Apple Silicon |
jme-macos-arm64-14.tar.gz |
macos-14 | macOS 14, Apple Silicon |
| Asset | Runner | Notes |
|---|---|---|
jme-windows-x64-2022.zip |
windows-2022 | MSVC 2022 runtime |
JPL BSP kernels are not included. Download kernels from the native JME kernel release when using the JPL/CALCEPH backend.
How can I help you explore Laravel packages today?