Skip to main content

 sunan-ibn-majah

The complete Sunan Ibn Majah — 4,341 hadiths, full Arabic & English.
Offline-first · zero dependencies · published on both npm and PyPI.


   

   


✨ Features

Feature Details
📚 Complete Collection All 4,341 hadiths from Sunan Ibn Majah
🌐 Bilingual Full Arabic text + English translation
⚡ Offline-first Data bundled — no CDN needed
🔧 Zero Dependencies Nothing extra to install
🔍 Full-text Search Search English text and narrator names
🖥️ CLI Terminal access with -a/-b Arabic flags + --info, --chapters
⚛️ React Hook One command generates useMajah()
🐍 Python Identical API — same camelCase method names
📘 TypeScript Full type definitions included

🚀 Installation

npm install sunan-ibn-majah       # JS local
npm install -g sunan-ibn-majah    # JS global CLI
pip install sunan-ibn-majah       # Python

🟨 JavaScript / Node.js

const majah = require('sunan-ibn-majah');  // CJS
import majah from 'sunan-ibn-majah';       // ESM

majah.get(1)
majah.getByChapter(1)
majah.search('prayer')
majah.search('prayer', 5)
majah.getRandom()
majah[0]
majah.length
majah.metadata
majah.chapters

⚛️ React

cd my-react-app
majah --react    # generates src/hooks/useMajah.js
import { useMajah } from '../hooks/useMajah';

function HadithOfTheDay() {
  const majah = useMajah();
  if (!majah) return <p>Loading...</p>;
  const h = majah.getRandom();
  return <div><strong>{h.english.narrator}</strong><p>{h.english.text}</p></div>;
}

🐍 Python

from sunan_ibn_majah import Majah

majah = Majah()

majah.get(1)
majah.getByChapter(1)
majah.search("prayer")
majah.search("prayer", limit=5)
majah.getRandom()
majah[0]
majah.length
majah.find(lambda h: h.id == 23)
majah.filter(lambda h: h.chapterId == 1)
majah.slice(0, 10)

# Custom path
majah = Majah(data_path="/path/to/majah.json")

🖥️ CLI

majah 1                      # Hadith by ID
majah 2345 -a                # Arabic only
majah 2345 -b                # Arabic + English
majah 23 3                   # 3rd hadith of chapter 23
majah --search "prayer"
majah --search "fasting" --all
majah --chapter 1
majah --chapters             # List all chapters
majah --random
majah --info                 # Book metadata
majah --react
majah --version

📂 Structure

sunan-ibn-majah/
├── data/
│   ├── majah.json           ← source of truth
│   ├── majah.json.gz        ← generated (shipped in packages)
│   └── chapters/            ← generated (gitignored)
├── bin/index.js             ← CLI
├── src/                     ← JS source
├── types/index.d.ts
├── python/sunan_ibn_majah/  ← Python package
├── scripts/build.mjs
├── examples/
├── docs/
└── tests/

🔧 Development

# Place your real majah.json in data/
node scripts/build.mjs

# Test locally
python -m build --wheel
python -m zipfile -l dist\sunan_ibn_majah-1.1.0-py3-none-any.whl | findstr "majah.json.gz"
pip install dist\sunan_ibn_majah-1.1.0-py3-none-any.whl --force-reinstall
majah 23

Publishing is automatic via GitHub Actions on every GitHub Release.


📄 License

GNU Affero General Public License v3.0 (AGPL-3.0)


Made with ❤️ for the Muslim community · Seeking knowledge together

Stars

Metadata

Release files for sunan-ibn-majah 1.1.2

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

Source distribution (sdist)

Source distribution for sunan-ibn-majah 1.1.2
File Size Uploaded
sunan_ibn_majah-1.1.2.tar.gz 1.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for sunan-ibn-majah 1.1.2
File Interpreter ABI Platform
sunan_ibn_majah-1.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 2.4 MB

Release files / sunan_ibn_majah-1.1.2.tar.gz

Download URL sunan_ibn_majah-1.1.2.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
b6e2b86c60f13c50b4a1d769454501f439393ae94ac6b00e485108f48d20c612
BLAKE2b-256 checksum
How to use checksums
c0aca721d5df2181949da96de58657930ab8ea8290dbc078e918baad220bb9d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / sunan_ibn_majah-1.1.2-py3-none-any.whl

Download URL sunan_ibn_majah-1.1.2-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
828d12914632f22ca34c08dcc638c8cc84375ff87c6893b41e2507145b40bcb7
BLAKE2b-256 checksum
How to use checksums
c2de1960a6b29e636daf90cb22853deea100dbf85490d2b63e84aa14c880c6be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

1.1.2 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