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

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.1.tar.gz (1.4 MB 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.1-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sunan_al_nasai-1.0.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • 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.1.tar.gz
Algorithm Hash digest
SHA256 c3193200868322408e8e35ffc702b34816b4dd3dc84efa162bdbd637f5914f49
MD5 97523691405bb2140c0eb6e9494c89ac
BLAKE2b-256 9a1b3a3e712498d4b3f9019bab3e8756a1e42bf094433bbf287d8c6f18f0af28

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sunan_al_nasai-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5ecefe7de643323b7c588171740ba476e4b578b69ec289047d64890bfdbd2341
MD5 a204121872dec2ac5bb41157893ca36d
BLAKE2b-256 498a3917ba7bace1180a68e381889fc9663484cab6169ef9732559c166f2e093

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

1.0.0

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