Menu

1 / 2

A Zero-Abstraction Swiss Ephemeris Binding in Python (No Extensions)

DEV Community·Jayesh Patel·6 months ago
#iYl5h5Fz
#ephemeris#python#swiss#level#full
Reading 0:00
15s threshold

I recently built something I couldn’t find in the Python ecosystem:

👉 A true 1:1 runtime-FFI binding for Swiss Ephemeris.

swisseph-ffi

The Problem

Most Python bindings for Swiss Ephemeris:

Use CPython extensions

Depend on compiled wheels

Wrap or modify the API

That’s fine — until you need:

Full API coverage

Exact C-level behavior

Long-term compatibility across Python versions

The Approach

This project uses:

👉 ctypes (runtime FFI)

👉 No compiled Python extension

👉 Direct shared library loading

Result:

You call Swiss Ephemeris exactly like C does — from Python.

What You Get

106/106 C functions mapped

Full constant parity

No output reshaping

No abstraction layer

Prebuilt native libraries included

Cross-platform support

What You DON’T Get (intentionally)

No helper abstractions

No “Pythonic” transformations

No hidden logic

This is a low-level tool by design .

Why This Exists

To solve:

ABI breakage across Python versions

Wheel distribution complexity

Loss of control in…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.