惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

M
MIT News - Artificial intelligence
D
Darknet – Hacking Tools, Hacker News & Cyber Security
SecWiki News
SecWiki News
Latest news
Latest news
A
Arctic Wolf
Know Your Adversary
Know Your Adversary
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
T
Tor Project blog
T
Threatpost
S
Schneier on Security
P
Palo Alto Networks Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
C
CERT Recently Published Vulnerability Notes
博客园_首页
P
Privacy & Cybersecurity Law Blog
I
Intezer
PCI Perspectives
PCI Perspectives
Spread Privacy
Spread Privacy
G
Google Developers Blog
H
Help Net Security
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
U
Unit 42
Application and Cybersecurity Blog
Application and Cybersecurity Blog
W
WeLiveSecurity
D
DataBreaches.Net
N
News and Events Feed by Topic
AI
AI
The Register - Security
The Register - Security
云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
Help Net Security
Help Net Security
K
Kaspersky official blog
Recent Announcements
Recent Announcements
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
S
Security @ Cisco Blogs
H
Hacker News: Front Page
Jina AI
Jina AI
S
Secure Thoughts
Project Zero
Project Zero
T
The Exploit Database - CXSecurity.com
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
爱范儿
爱范儿

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
Stop shipping a 1990s C library to compute planets. Xalen is the pure-Rust, Apache-2.0 replacement for Swiss Ephemeris.
Xalen Technologies · 2026-06-03 · via DEV Community

Stop shipping a 1990s C library to compute planets. Xalen is the pure-Rust, Apache-2.0 replacement for Swiss Ephemeris.

If your app does astrology, you already know the dependency. Swiss Ephemeris: a C library from the 1990s, a folder of binary .se1 data files you have to ship and locate at runtime, and a license that is either AGPL or you pay for a commercial seat. For 30 years it was the only serious option, so everyone just swallowed the cost.

That era is over. Xalen Ephemeris is a full planetary engine written in pure Rust, with no unsafe in the core engine (the only unsafe lives in the optional FFI, Node and WASM binding crates), released under Apache-2.0. No C toolchain. No data files to ship. No copyleft clause waiting for the day you try to make money. It is built to replace Swiss Ephemeris in production, not to admire it from a distance.

Python is live on PyPI and the Rust crates are live on crates.io:

# Python
pip install xalen

# Rust
cargo add xalen-ephem xalen-time xalen-ayanamsa xalen-vedic

Node and WASM build straight from the repo. Repo: https://github.com/vedika-io/xalen-ephemeris

Switching takes one line

Xalen ships a pyswisseph-shaped API on purpose. Migrating an existing codebase is a find-and-replace:

# before
import swisseph as swe
# after
import xalen.swe as swe

jd = swe.julday(1990, 6, 15, 10.5)
xx, ok = swe.calc_ut(jd, swe.SUN, swe.FLG_SWIEPH | swe.FLG_SPEED)
# same argument order, same SE_/SEFLG_/SIDM_ constants, same tuple layout

Your function calls do not change. Your data-file directory disappears. Your license problem disappears.

Xalen vs Swiss Ephemeris

Line them up and the gap is hard to miss. Swiss Ephemeris is C from the 1990s, shipped as a native library you compile and link, fed by .se1 data files you have to bundle and locate at runtime, under AGPL or a paid commercial license. Xalen is pure Rust with no unsafe in the core engine, thread-safe, with no native dependency and no data files for the analytical engine (the DE440 kernel is optional), under permissive Apache-2.0. Swiss reaches other languages through third-party wrappers; Xalen targets Rust, Python, C and C++, Node and WASM from one core. On accuracy both track JPL DE, and Xalen matches DE440 to sub-arcsecond on the inner planets with the kernel available for full precision. Swiss gives you positions, houses and ayanamsa and stops there; Xalen ships the entire astrology layer on top, renders charts to SVG, geocodes 130+ cities and localizes into 19 languages. And switching is one line: import xalen.swe as swe.

The part nobody else ships

This is where the comparison stops being close. A raw ephemeris, JPL's or Swiss's, hands you coordinates. Then you spend the next two years building the astrology yourself. Xalen ships that layer, for the whole world, in the box:

India / Vedic (Jyotish). Vimshottari and other dashas, 16 divisional charts (vargas), full panchang with tithi, nakshatra, yoga and karana transition times, shadbala, KP, Jaimini, Tajaka annual charts, yogas, doshas, and compatibility. Plus Lal Kitab remedial astrology.

Western. Aspects, essential and accidental dignities, 97 Arabic Lots, Hellenistic and Uranian techniques, Cosmobiology, secondary progressions, exact solar and lunar returns by iterative refinement, declination aspects and antiscia, harmonics, and horary.

China. BaZi Four Pillars, Zi Wei Dou Shu, Feng Shui Flying Stars, and Qi Men Dun Jia (experimental).

The rest of the world. Korean Saju, Japanese Nine Star Ki, Burmese Mahabote, Mayan and Aztec calendars, Tibetan, Persian/Zoroastrian, Egyptian, and Celtic systems. I Ching with all 64 hexagrams and the full 384 line texts. Pythagorean and Chaldean numerology (Life Path, Expression, Soul Urge).

And the astronomy a serious engine needs. 50 ayanamsa systems and 23 house systems. A rigorous solar and lunar eclipse engine with Besselian elements and per-observer local circumstances, validated against NASA for 2017 and 2024. 506 built-in fixed stars plus 8,870 compiled-in Hipparcos stars and the full 118,218-star catalog loadable at runtime. Black Moon Lilith (mean and true), Chiron, nodes, and 15 asteroids and TNOs. Velocity and retrograde flags, topocentric positions, and RA/Dec, heliocentric and rectangular output. Real time systems: UT1/TT/TDB, the full leap-second table, and a Stephenson-Morrison-Hohenkerk delta-T spline. SVG chart rendering (North Indian, South Indian, Western wheel) with zero dependencies, 130+ city geocoding, and names in 19 languages.

Swiss Ephemeris gives you the math and stops. JPL gives you the coordinates and stops. Xalen gives you all of it, from one Apache-2.0 engine, with Rust, Python, Node, WASM and C bindings. A few of these are flagged experimental in the docs, and they are labelled honestly rather than hidden.

The accuracy is not a vibe, it is a number

Most libraries ask you to trust them. Xalen hands you the receipts, in two layers. The first is a reproducible 5,000,000-chart consistency sweep: random (date, lat, lon) charts spanning the years 1500 to 2400, every one diffed against a Swiss Ephemeris (pyswisseph) oracle for every body, the house cusps, and four ayanamsas. The harness is in the repo and it is deterministic, so you can reproduce the entire run yourself:

python3 validation/oracle_pyswisseph.py --n 5000000 --seed 42 \
  | cargo run -p xalen-validation --release -- -

One honest note on that sweep: the oracle is pyswisseph, and without Swiss or JPL data files (.se1 / .bsp) it falls back to the analytic Moshier theory, so by default it measures analytic-against-analytic agreement. The harness prints exactly which backend it used; point it at the data files for a true Swiss-backed comparison.

The headline accuracy comes from the second layer: a committed cross-validation against JPL Horizons vectors, run with cargo test. Against DE440, the Sun lands at 0.21 arcsec and Mercury through Saturn stay under 0.76 arcsec. Uranus and Neptune sit at 1.8 to 2.5 arcsec. The analytical Moon holds an RMS near 2.8 arcsec, and loading the optional DE440 kernel takes the Sun, planets and Moon sub-arcsecond with full-range Pluto. Every figure is per-body and reproducible. The full breakdown is in docs/ACCURACY.md.

This is the point worth sitting with: a pure-Rust engine with zero data files matches the gold-standard NASA DE440 ephemeris to a fraction of an arcsecond on the inner planets, and backs it with a reproducible five-million-chart consistency sweep on top. You do not have to choose between "clean dependency" and "correct."

A clean-room engine, not a wrapper

Xalen is an independent, clean-room implementation, not affiliated with Astrodienst. It is built directly from the published theories the whole field relies on: VSOP87, ELP-2000/82, IAU 2006 precession with 2000B nutation, and the Stephenson, Morrison and Hohenkerk delta-T model, with JPL DE440 as an optional high-precision kernel. It is cross-checked against Swiss Ephemeris because that is the honest way to prove a replacement, not because a single line of it is borrowed.

Where it stands today

This is a launch, and the engine is ready for real work.

If you have ever fought the Swiss Ephemeris C build, hunted for a missing .se1 file in production, or had a licensing conversation you did not enjoy, Xalen is the exit. Star it, fork it, and put it head to head with whatever you trust:

https://github.com/vedika-io/xalen-ephemeris

Try to break it. Open an issue with a chart Xalen gets wrong against your reference. Out of five million, the next interesting failure is the one you find.

Xalen is a computation engine. Any astrological interpretation built on top of it is for informational and cultural purposes, not professional advice.