Skip to main content

Complete Jami al-Tirmidhi — 3,956 hadiths with full Arabic text and English translations. Offline-first, zero dependencies. CLI + Python library.

Project description

 jami-al-tirmidhi

The complete Jami al-Tirmidhi — 3,956 hadiths, full Arabic & English.
Offline-first · zero dependencies · published on both npm and PyPI.


   

     


✨ Features

Feature Details
📚 Complete Collection All 3,956 authentic hadiths from Jami al-Tirmidhi
🌐 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 instantly
🖥️ CLI Terminal access with Arabic/English/both flags
⚛️ React Hook One command generates useTirmidhi()
🐍 Python Identical API — same camelCase method names
📘 TypeScript Full type definitions included

🚀 Installation

npm install jami-al-tirmidhi       # JS local
npm install -g jami-al-tirmidhi    # JS global CLI
pip install jami-al-tirmidhi       # Python

🟨 JavaScript / Node.js

const tirmidhi = require('jami-al-tirmidhi');  // CJS
import tirmidhi from 'jami-al-tirmidhi';       // ESM

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

⚛️ React

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

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

🐍 Python

from jami_al_tirmidhi import Tirmidhi

tirmidhi = Tirmidhi()

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

# Custom path
tirmidhi = Tirmidhi(data_path="/path/to/tirmidhi.json")

🖥️ CLI

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

📂 Structure

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

🔧 Development

# Place your real tirmidhi.json in data/
node scripts/build.mjs    # compress, generate chapters/, copy to python/

# Test locally before publishing
python -m build --wheel
python -m zipfile -l dist\jami_al_tirmidhi-1.0.0-py3-none-any.whl | findstr "tirmidhi.json.gz"
pip install dist\jami_al_tirmidhi-1.0.0-py3-none-any.whl --force-reinstall
tirmidhi 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

jami_al_tirmidhi-1.0.0.tar.gz (1.5 MB view details)

Uploaded Source

Built Distribution

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

jami_al_tirmidhi-1.0.0-py3-none-any.whl (1.5 MB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for jami_al_tirmidhi-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ac76a74a3f18c23af1bdf84920dc182885f7e82e5de588305a498653d5bbce1b
MD5 dd20305708f691ef00f3a684f2952144
BLAKE2b-256 fac544fb54b5706f007c9bc0e5253e64b5f8f286d44cb0a277e1c392b0400767

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for jami_al_tirmidhi-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b09f8a834f4a47e5e9ec2649c7333592322fdee32d4a2e8fb31eabcdf600e142
MD5 3957748de9e80a825a1fa2e0b9ae2e96
BLAKE2b-256 4bcaa3c09d0f3b8c8d173445bba759c50eac31a17c2957bcb0f3f6a1f8773666

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