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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sunan_ibn_majah-1.1.2.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sunan_ibn_majah-1.1.2-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file sunan_ibn_majah-1.1.2.tar.gz.

File metadata

  • Download URL: sunan_ibn_majah-1.1.2.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for sunan_ibn_majah-1.1.2.tar.gz
Algorithm Hash digest
SHA256 b6e2b86c60f13c50b4a1d769454501f439393ae94ac6b00e485108f48d20c612
MD5 0a3319447c6b8675f5662bbdccf55cd9
BLAKE2b-256 c0aca721d5df2181949da96de58657930ab8ea8290dbc078e918baad220bb9d6

See more details on using hashes here.

File details

Details for the file sunan_ibn_majah-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for sunan_ibn_majah-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 828d12914632f22ca34c08dcc638c8cc84375ff87c6893b41e2507145b40bcb7
MD5 0e1580461d7e345ef805bb767987f186
BLAKE2b-256 c2de1960a6b29e636daf90cb22853deea100dbf85490d2b63e84aa14c880c6be

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.2 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page