Skip to main content

Complete Sunan al-Nasa'i — 5,768 hadiths with full Arabic text and English translations. Offline-first, zero dependencies. CLI + Python library.

Project description

 sunan-al-nasai

The complete Sunan al-Nasa'i — 5,768 hadiths, full Arabic & English.
Offline-first · zero dependencies · published on both npm and PyPI.


   

     


✨ Features

Feature Details
📚 Complete Collection All 5,768 authentic hadiths from Sunan al-Nasa'i
🌐 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 Arabic/English/both flags
⚛️ React Hook One command generates useNasai()
🐍 Python Identical API — same camelCase method names
📘 TypeScript Full type definitions included

🚀 Installation

npm install sunan-al-nasai       # JS local
npm install -g sunan-al-nasai    # JS global CLI
pip install sunan-al-nasai       # Python

🟨 JavaScript / Node.js

const nasai = require('sunan-al-nasai');  // CJS
import nasai from 'sunan-al-nasai';       // ESM

nasai.get(1)
nasai.getByChapter(1)
nasai.search('prayer')
nasai.search('prayer', 5)
nasai.getRandom()
nasai[0]
nasai.length
nasai.metadata
nasai.chapters
nasai.find(h => h.id === 23)
nasai.filter(h => h.chapterId === 1)
nasai.slice(0, 10)

⚛️ React

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

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

🐍 Python

from sunan_al_nasai import Nasai

nasai = Nasai()

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

# Custom path
nasai = Nasai(data_path="/path/to/nasai.json")

🖥️ CLI

nasai 1
nasai 2345 -a           # Arabic only
nasai 2345 -b           # Arabic + English
nasai 23 34             # Hadith 34 within chapter 23
nasai --search "prayer"
nasai --search "fasting" --all
nasai --chapter 1
nasai --random
nasai --react
nasai --version

📂 Structure

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

🔧 Development

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

# 2. Test locally (no internet needed)
python -m build --no-isolation --wheel
python -m zipfile -l dist\sunan_al_nasai-1.0.0-py3-none-any.whl | findstr "nasai.json.gz"
pip install dist\sunan_al_nasai-1.0.0-py3-none-any.whl --force-reinstall
nasai 23

# 3. Release (triggers GitHub Actions → auto-publishes to npm + PyPI)
git add .
git commit -m "v1.0.0 — initial release"
git push origin main
gh release create v1.0.0 --title "v1.0.0" --notes "initial 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_al_nasai-1.0.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

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

sunan_al_nasai-1.0.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file sunan_al_nasai-1.0.0.tar.gz.

File metadata

  • Download URL: sunan_al_nasai-1.0.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for sunan_al_nasai-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b0e3c1191255547d4b574ea4daa0afae69e92b9b8c7a3dbf677fa4568dddb3b0
MD5 962b0070ba663c8b0d0fca8e4d54272f
BLAKE2b-256 0e7248292c219631399eb1406b3012c9838e0f59ddca3c1433c40553d6681fdc

See more details on using hashes here.

File details

Details for the file sunan_al_nasai-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: sunan_al_nasai-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for sunan_al_nasai-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 83d1f1a09caa7b9d0e8cb7a6f6a6f921cffc3bc0b27c6002f8b7a808db41fed1
MD5 f285a579cbb2f62e56e1b3c6232fc6cd
BLAKE2b-256 6034018c22749046b3aa8af20be472b8f1289a91b6a239308575f8322efd3d0b

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