Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Swiss Ephemeris Ffi Laravel Package

jayeshmepani/swiss-ephemeris-ffi

PHP 8.3+ FFI wrapper exposing all 106 Swiss Ephemeris C API functions with full constant and signature parity. Zero abstraction or extra math, verified bit-level output parity against the official swetest CLI for planets, houses, eclipses, and edge dates.

View on GitHub
Deep Wiki
Context7

Swiss Ephemeris PHP FFI

PHP Version License Latest Version on Packagist Total Downloads

PHP 8.3+ FFI wrapper for the Swiss Ephemeris C library.

This package is designed to expose the Swiss Ephemeris C API to PHP through FFI, without shelling out to the swetest command-line tool.

Zero abstraction. Native-level FFI. Verified output parity with Swiss Ephemeris C engine.

Swiss Ephemeris PHP FFI provides a zero-abstraction, 1:1 mapping of the native Swiss Ephemeris C library. All 106 public API functions are exposed with complete constant and signature parity.

The wrapper performs no additional calculations, transformations, or rounding, ensuring direct memory-level interaction with the C engine.

Outputs are verified against the official swetest CLI using automated PHPUnit tests, demonstrating bit-level parity in verified test scenarios for planetary positions, house systems, eclipses, and edge-date calculations.

Latest Upstream Status

Checked against upstream on April 25, 2026.

  • Latest upstream release tag: v2.10.3final released on April 14, 2026.
  • Current upstream master checked: commit 2f18c14 from April 18, 2026 (fixed bug in semo4200.se1).
  • Swiss Ephemeris 3.0: announced by upstream as the next major source-code release, but no public v3.0 tag was available at the time of this check.
  • DE441 data update: upstream states that, as of April 14, 2026, all .se1 data files for planets and asteroids were rebuilt with JPL Ephemeris DE441.
  • Compatibility note: upstream states that the rebuilt .se1 files remain compatible with older Swiss Ephemeris versions at least back to release 1.67.
  • Asteroid data: upstream documents more than 760,000 numbered asteroids and more than 25,000 named asteroids. Commit history also records asteroid list updates through numbered asteroid 793066.
  • Internal Swiss Ephemeris version string: the upstream C header still defines SE_VERSION as 2.10.03.

See VERSION.md and UPSTREAM_SYNC.md for detailed version tracking.

Requirements

  • PHP ^8.3
  • PHP FFI extension (ext-ffi)
  • FFI enabled in PHP configuration. Depending on your environment, this usually means setting ffi.enable=true, or configuring FFI preload mode correctly.

Installation

composer require jayeshmepani/swiss-ephemeris-ffi

Quick Start

use SwissEph\FFI\SwissEphFFI;

$sweph = new SwissEphFFI();

$jd = $sweph->swe_julday(2000, 1, 1, 12.0, SwissEphFFI::SE_GREG_CAL);

$xx = $sweph->getFFI()->new("double[6]");
$serr = $sweph->getFFI()->new("char[256]");

$result = $sweph->swe_calc_ut(
    $jd,
    SwissEphFFI::SE_SUN,
    SwissEphFFI::SEFLG_SPEED,
    $xx,
    $serr
);

if ($result >= 0) {
    echo "Sun Longitude: " . $xx[0] . "°\n";
} else {
    echo "Swiss Ephemeris error: " . $sweph->getFFI()->string($serr) . "\n";
}

Performance Audit

We have conducted a rigorous side-by-side benchmark comparing this FFI implementation against the native php-sweph C-extension.

View the Interactive Performance Audit →

The audit demonstrates bit-perfect accuracy and highly competitive performance across all 106 Swiss Ephemeris functions.

Documentation

Read the full documentation →

The documentation covers:

  • Installation on Linux, macOS, and Windows
  • FFI configuration
  • Ephemeris file setup
  • Swiss Ephemeris API usage
  • Examples for tropical, sidereal, and house calculations
  • Laravel integration
  • Troubleshooting

Verification Sources

License

This package metadata declares AGPL-3.0-or-later.

The upstream Swiss Ephemeris C library and ephemeris data are distributed under Astrodienst's dual licensing model: AGPL or Swiss Ephemeris Professional License. If you use Swiss Ephemeris in commercial or closed-source software, or in a public SaaS/web service, review Astrodienst's license terms before use.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo