Skip to main content

Shaum

A production-grade Rust library for Islamic fasting (Shaum) jurisprudence with high-precision astronomical calculations for Hilal visibility.

Crates.io NPM JSR License: MIT

Features

Fiqh Engine

  • Hijri Conversion: Umm al-Qura algorithm with moon-sighting adjustment support.
  • Rule Priority: Haram > Wajib > Sunnah > Makruh > Mubah.
  • Status Classification:
    • Wajib: Ramadan
    • Haram: Eid al-Fitr, Eid al-Adha, Days of Tashriq
    • Sunnah: Arafah, Ashura, Tasu'a, Ayyamul Bidh, Mondays, Thursdays, Shawwal
    • Makruh: Singling out Friday or Saturday

Astronomy Engine

Native high-precision ephemeris calculations for Hilal visibility determination:

  • Sun Position: VSOP87 theory (~1 arcsec precision)
  • Moon Position: ELP2000-82 theory (~1 arcsec precision)
  • Coordinate Systems: Ecliptic, Equatorial, Horizontal
  • Corrections: Topocentric parallax, atmospheric refraction (Bennett)
  • Visibility: MABIMS criteria (altitude ≥ 3°, elongation ≥ 6.4°)

Validated against 87 years of historical Indonesian Ramadan dates (1938-2024).

Installation

Rust

[dependencies]
shaum = "0.8"

JavaScript/TypeScript (NPM)

npm install shaum-wasm

Deno (JSR)

import { analyze } from "jsr:@islam/shaum";

Usage

Rust

use shaum::prelude::*;
use chrono::NaiveDate;

let date = NaiveDate::from_ymd_opt(2025, 6, 5).unwrap();
let analysis = shaum::analyze_date(date)?;

println!("Status: {:?}", analysis.primary_status);

JavaScript

import init, { analyze } from 'shaum-wasm';

await init();

const result = analyze("2025-06-05");
console.log(result.primaryStatus);

Workspace Structure

shaum/
├── crates/
│   ├── shaum-types/       # Zero-dependency types
│   ├── shaum-calendar/    # Hijri conversion
│   ├── shaum-astronomy/   # VSOP87/ELP2000
│   ├── shaum-rules/       # Fasting jurisprudence
│   ├── shaum-network/     # Async geolocation
│   └── shaum-core/        # Facade crate
├── bindings/
│   ├── shaum_wasm/        # WebAssembly
│   └── shaum_py/          # Python (pyo3)
└── xtask/                 # Build automation

Validation

Component Method Precision
Sun (VSOP87) Meeus Example 25.a ~0.27 arcsec
Moon (ELP2000) Meeus Example 47.a ~0.02 arcsec
Historical Indonesian Ramadan 1938-2024 87/87 passed

References

  • Jean Meeus, Astronomical Algorithms (2nd ed.)
  • MABIMS visibility criteria (Indonesia/Malaysia/Brunei/Singapore)
  • VSOP87 (Bretagnon & Francou, 1988)
  • ELP2000-82 (Chapront-Touzé & Chapront, 1983)

License

MIT License. Copyright (c) 2026 Mohammad Farid Hendianto.

Metadata

Release files for shaum 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shaum 0.8.0
File Size Uploaded
shaum-0.8.0.tar.gz 54.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for shaum 0.8.0
File Interpreter ABI Platform
shaum-0.8.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details

Total release size: 182.8 kB

Release files / shaum-0.8.0.tar.gz

Download URL shaum-0.8.0.tar.gz
Size 54.5 kB
Tags Source
SHA-256 checksum
How to use checksums
eb29f2b4128bb82a1dfdcc3df49fc597411da666cae32421d3a21a45b5d4b094
BLAKE2b-256 checksum
How to use checksums
9073538c43d065a8ecb882ca44784d60992051c13cda4f18f559be5e0326337f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release files / shaum-0.8.0-cp311-cp311-win_amd64.whl

Download URL shaum-0.8.0-cp311-cp311-win_amd64.whl
Size 128.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
879480c00b96dda2a983ec19fdef0a7dc61c494ebb6532e6e8b3be96d152ee4b
BLAKE2b-256 checksum
How to use checksums
16d5801245d7c566c23445487520a29443bd4849aaffae3ecad3ab9b92aece4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.10.2

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page