Skip to main content

Notihub is a Python library to manage and use different notification services.

Project description

NotiHub - Plug-and-Play Notification Library

Python Version License

A unified, plug-and-play solution for sending notifications through various providers.

Introduction

NotiHub is a Python library designed to manage and use different notification services through a unified, plug-and-play interface. The library's core philosophy centers around providing a consistent abstraction layer over various notification providers, allowing developers to switch between services or use multiple providers simultaneously with minimal code changes.

Why NotiHub?

The plug-and-play design philosophy of NotiHub offers several key benefits:

  • Consistency: All notification providers implement the same interface, ensuring consistent behavior across different services.
  • Flexibility: Easy to add new notification providers or switch between existing ones without changing application code.
  • Maintainability: Centralized configuration and error handling reduces code duplication.
  • Extensibility: Simple to extend functionality for new notification channels or providers.
  • Testability: Consistent interfaces make unit testing straightforward and provider-agnostic.

Quick Start

Install NotiHub using pip:

pip install notihub

Basic usage with AWS:

from notihub.client import NotifierClient

# Initialize AWS notifier
aws_notifier = NotifierClient.get_aws_notifier(
    aws_access_key_id="your_access_key",
    aws_secret_access_key="your_secret_key",
    region_name="us-east-1"
)

# Send SMS via AWS SNS
aws_notifier.send_sms_notification(
    phone_number="+1234567890",
    message="Hello from NotiHub!"
)

Core Concepts

BaseNotifier Abstract Class

The BaseNotifier abstract class serves as the foundation for all notification providers in NotiHub. It defines the standard interface that all notifiers must implement, ensuring consistency across different services.

All notifiers in NotiHub inherit from the BaseNotifier abstract class, which defines three core methods:

  • send_sms_notification(): For sending SMS messages
  • send_email_notification(): For sending email notifications
  • send_push_notification(): For sending push notifications

This abstraction allows developers to write code that works with any supported notification provider without modification.

Supported Notifiers

NotiHub currently supports the following notification providers:

AWS Notifier

The AWS notifier provides integration with multiple AWS services:

  • Amazon SNS: For SMS and push notifications
  • Amazon SES: For email notifications
  • Amazon Pinpoint: For advanced messaging capabilities

Twilio Notifier

The Twilio notifier provides integration with Twilio's communication platform, primarily focused on SMS messaging.

Further Documentation

For complete documentation, including installation instructions, usage examples, API references, and detailed configuration guides, please visit our Read the Docs documentation.

Contributing

We welcome contributions to NotiHub! Whether you're fixing bugs, adding new features, or improving documentation, your help is appreciated.

Please see our full contributing guidelines for details on our development workflow, code style guidelines, and how to add new providers.

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

notihub-0.1.8rc0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

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

notihub-0.1.8rc0-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file notihub-0.1.8rc0.tar.gz.

File metadata

  • Download URL: notihub-0.1.8rc0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for notihub-0.1.8rc0.tar.gz
Algorithm Hash digest
SHA256 17d5a61fbdc77eeff8d60917c14c24255ed3c89ae7cc231f9165a604fd4d4003
MD5 54d7cfe5ff94a506709856c5e5bb7c03
BLAKE2b-256 c4723f750fdd98bfe4570251111ad6ff207edacbeb4cd2d080b4016401537640

See more details on using hashes here.

File details

Details for the file notihub-0.1.8rc0-py3-none-any.whl.

File metadata

  • Download URL: notihub-0.1.8rc0-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for notihub-0.1.8rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 458e4a52a98e3b7e684e91397c2a19d957531722a2b261e8380ce4b32495f8e5
MD5 13497ab8a8aeb4ed9337f6e07239dc3f
BLAKE2b-256 9bab33bd71d1e0c130e455f4951d5e633aa8318aacf0cb2a58525a2fbd3cfcea

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