Status

What is measured.

Numbers, not labels. Every figure on this page traces to the source tree or a package registry.

Version, residuals, test count, code posture, distribution evidence. Clone the repo and run cargo test --workspace to reproduce any figure below.

Chapter I — build + version

Engine version and CI.

Release

Current version.

Versionv4.0.0
ReleasedJuly 23, 2026
LicenseBSL 1.1 → Apache 2.0 (per-version, 5y from 2026-07-23)
ToolchainRust Edition 2024 · MSRV 1.85

CI

Build status.

CI workflowPassing on main (800934e, 2026-07-24)

CI status is fetched live from the GitHub Actions API and refreshes hourly (ISR). If the API is unreachable this page says so rather than showing a remembered result.

Chapter II — distribution + accuracy

Where it ships and what it measures.

Distribution

Where it ships.

crates.iovedaksha4.0.0First published 2026-04-24
PyPIvedaksha4.0.0Rust engine via WebAssembly (wasmtime) · py3-none-any · Python ≥ 3.9
GitHub Container Registryghcr.io/arthiqlabs/vedaksha-mcp4.0.0MCP server, stdio + HTTP (bearer-token auth) · linux/amd64 + linux/arm64
WASMvedaksha-wasm4.0.0Browser / edge / Cloudflare Workers

Accuracy

Measured against external references.

Figures trace to the engine's JPL validation tests — a committed 24,350-row Horizons DE441 oracle fixture in tests/oracle_jpl/ plus a live-fetched Horizons grid for the lunar theory. Each residual is recomputable from a fresh checkout.

Oracle reference rows24,350 (10 bodies × 2,435 dates, 1900–2100) · JPL Horizons DE441 · tests/oracle_jpl/reference_positions.json
SpkReader, all bodies — DE440s kernel (vs JPL Horizons DE441, 1900–2025)0.106″ avg · 1.184″ max (Uranus, 1948) · 99.993% sub-arcsecond (15,349 of 15,350)
SpkReader, all bodies (vs JPL Horizons DE441, full 1900–2100)0.880″ avg · 44.914″ max (Moon, 2099) — post-2025 growth is ΔT prediction divergence, not ephemeris error
Moon longitude — ELP/MPP02 (vs live-fetched JPL Horizons DE441)0.015″ at J2000 (tolerance 0.06″) · 0.020–0.053″ over 1500–2500 CE · 85.5″ in deep antiquity (−3000 CE)
Moon longitude — AnalyticalProvider (vs JPL Horizons DE441, 1900–2025)0.169″ avg · 0.607″ max
All bodies — AnalyticalProvider (vs JPL Horizons DE441, 1900–2025)2.06″ avg overall · worst case Venus at 4.83″ avg / 24.22″ max
Sun longitude — AnalyticalProvider (vs JPL Horizons DE441, 1900–2025)4.09″ avg · 7.00″ max
Ayanamsha (Lahiri, Fagan-Bradley, KP vs cited external constants)0.003–0.005° · other 41 systems range-checked

Code posture

What the source enforces.

Workspace crates9 — 8 library crates plus the vedaksha-py-engine wasm shim behind the PyPI package
unsafe keyword usage0 in all 8 library crates — the vedaksha-py-engine wasm shim alone uses unsafe, for its C-ABI exports at the wasm boundary
Crates with explicit #![deny(unsafe_code)]6 of 9 — vedaksha-wasm, the vedaksha umbrella crate, and the vedaksha-py-engine wasm shim are the exceptions
EditionRust Edition 2024 across the workspace
GitHub Actions workflowsci · full-validation · audit · benchmarks · release

Verify

Reproduce every number.

Clone, build, run the suite. Every figure above is recomputable on your machine.

git clone https://github.com/arthiqlabs/vedaksha.git
cd vedaksha

# Unit test suite (runs on every CI push)
cargo test --workspace

# Full suite incl. the 24,350-row Horizons DE441 oracle
# comparison and live-fetch validation (requires network)
cargo test --workspace -- --include-ignored

# Regenerate the oracle fixture from JPL Horizons yourself
python3 scripts/generate_horizons_oracle.py

# Lint gates that CI enforces
cargo fmt --all -- --check
cargo clippy --workspace -- -D warnings

# unsafe-code count (expect: 0)
grep -rE '\bunsafe\b' --include='*.rs' crates/ \
  | grep -vE 'deny.unsafe_code|//.+unsafe' \
  | wc -l

Source: github.com/arthiqlabs/vedaksha