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.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.

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