Skip to main content

 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

Metadata

Release files for sunan-al-nasai 1.0.1

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-al-nasai 1.0.1
File Size Uploaded
sunan_al_nasai-1.0.1.tar.gz 1.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for sunan-al-nasai 1.0.1
File Interpreter ABI Platform
sunan_al_nasai-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.9 MB

Release files / sunan_al_nasai-1.0.1.tar.gz

Download URL sunan_al_nasai-1.0.1.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
c3193200868322408e8e35ffc702b34816b4dd3dc84efa162bdbd637f5914f49
BLAKE2b-256 checksum
How to use checksums
9a1b3a3e712498d4b3f9019bab3e8756a1e42bf094433bbf287d8c6f18f0af28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / sunan_al_nasai-1.0.1-py3-none-any.whl

Download URL sunan_al_nasai-1.0.1-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
5ecefe7de643323b7c588171740ba476e4b578b69ec289047d64890bfdbd2341
BLAKE2b-256 checksum
How to use checksums
498a3917ba7bace1180a68e381889fc9663484cab6169ef9732559c166f2e093
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.0.1 This release

2 release files

1.0.0

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