Skip to main content

Complete Sunan Ibn Majah — 4,341 hadiths with full Arabic text and English translations. Offline-first, zero dependencies. CLI + Python library.

Project description

 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

Project details


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.

Supported by

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