Framework-agnostic messaging library for multi-channel communication.
Project description
python-missive
Lightweight, framework-agnostic Python library for multi-channel message sending (email, SMS, push notifications, postal mail, etc.).
Overview
python-missive is a framework-agnostic Python library that provides unified providers for multi-channel message sending. It serves as the base for django-missive and can be used independently in any Python project.
Main features
- 🔌 15+ integrated providers for different communication channels
- 📧 Email: SendGrid, Mailgun, SES, Brevo, SMTP, Django Email
- 📱 SMS & Voice: Twilio, Vonage, SMSPartner
- 💬 Messaging: Telegram, Signal, Messenger, Slack, Teams
- 📮 Postal & LRE: La Poste, Maileva, AR24, Certeurope
- 🔔 Push notifications: FCM (Firebase), APN (Apple), In-App
- 🏗️ Modular architecture based on ProviderKit
- ✅ Framework-agnostic: usable with or without a framework
- 🎯 Complete type hints and documentation
Installation
# Basic installation
pip install python-missive
# With dependencies for specific providers
pip install python-missive[email] # Email providers
pip install python-missive[sms] # SMS and voice
pip install python-missive[messaging] # Telegram, Signal, etc.
pip install python-missive[push] # FCM, APN
pip install python-missive[postal] # Postal mail
pip install python-missive[all] # All providers
Quick usage
from pymissive.providers.sendgrid import SendGridProvider
# Configure the provider
provider = SendGridProvider(config={
'SENDGRID_API_KEY': 'your-api-key'
})
# Send an email
result = provider.send_email(
from_email='sender@example.com',
to_email='recipient@example.com',
subject='Hello',
body='<p>Message content</p>'
)
Available providers
DjangoEmailProvider- Uses Django email backendSMTPProvider- Generic SMTPSendGridProvider- SendGrid APIMailgunProvider- Mailgun APISESProvider- Amazon SESBrevoProvider- Brevo (ex-Sendinblue)ScalewayProvider- Scaleway Transactional Email
SMS & Voice
TwilioProvider- Twilio SMS and voice callsVonageProvider- Vonage (ex-Nexmo)SMSPartnerProvider- SMSPartner
Messaging
TelegramProvider- Telegram Bot APISignalProvider- Signal MessengerMessengerProvider- Facebook MessengerSlackProvider- SlackTeamsProvider- Microsoft Teams
Postal mail & LRE
LaPosteProvider- La Poste (physical mail)MailevaProvider- MailevaAR24Provider- AR24 (LRE)CerteuropeProvider- Certeurope
Push notifications
FCMProvider- Firebase Cloud MessagingAPNProvider- Apple Push NotificationInAppNotificationProvider- In-app notifications
Architecture
The library uses ProviderKit for provider management:
from pymissive.providers import get_missive_providers
# Discover all available providers
providers = get_missive_providers()
# Filter by service type
email_providers = [p for p in providers if 'email' in p.services]
Documentation
For more details, see the documentation in the docs/ folder:
docs/purpose.md- Project goals and architecturedocs/structure.md- Module structure and organizationdocs/development.md- Development guidelinesdocs/AI.md- Contract for AI assistants
Development
# Create virtual environment
python service.py dev venv
# Install in development mode
python service.py dev install-dev
# Run tests
python service.py dev test
# Format code
python service.py dev format
# Run all quality checks
python service.py quality check
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pymissive-1.0.10.tar.gz.
File metadata
- Download URL: pymissive-1.0.10.tar.gz
- Upload date:
- Size: 37.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7205c950b328bd5df112926ebffd2f8d9c70cebcbae371e51587f5f04c3328da
|
|
| MD5 |
417d904620752bf777de0f7b9a345f02
|
|
| BLAKE2b-256 |
a9dc23c9144486b462835dcfa2cda8e9035c6dab9537346dee9a58fd8982c805
|
File details
Details for the file pymissive-1.0.10-py3-none-any.whl.
File metadata
- Download URL: pymissive-1.0.10-py3-none-any.whl
- Upload date:
- Size: 53.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f951f3ddfb65b7aa8faa7c64f41a8c293af7715bb6403819f309c649a93a0ff1
|
|
| MD5 |
76778c8b285e3833e788b68adaa27f2f
|
|
| BLAKE2b-256 |
38b8a9f6f39304088467d5b600809ed8e5ec81f0b28ed5c4e1ed0e99a6e031f4
|