Repository navigation
v0.1.0
LeanMQ v0.1.0
Initial public release of LeanMQ, a simple and efficient message queue system built on Redis Streams.
Features
- Simple yet powerful API: Easy to integrate into any Python application
- Redis Streams foundation: Leverages Redis's robust and efficient stream implementation
- Queue management:
- Create and manage queue pairs (main queue + dead letter queue)
- List, modify, and delete queues
- Track queue information (message counts, pending messages)
- Message operations:
- Send messages with optional custom IDs and TTL (time-to-live)
- Retrieve messages with blocking or non-blocking operations
- Acknowledge processed messages
- Delete messages from queues
- Move failed messages to dead letter queues
- Requeue messages from DLQ back to main queue
- Consumer groups: Support for multiple consumers processing messages from the same queue
- Atomic transactions: Send multiple messages across different queues in a single atomic operation
- Message tracking: Track delivery attempts, failures, and processing history
- Error handling: Robust handling of connection issues and Redis failures
Installation
pip install leanmq
Quick Start
from leanmq import LeanMQ
# Initialize with Redis connection details
mq = LeanMQ(redis_host="localhost", redis_port=6379)
# Create a queue pair (main queue and dead letter queue)
main_queue, dlq = mq.create_queue_pair("notifications")
# Send a message
msg_id = main_queue.send_message({"type": "email", "recipient": "user@example.com"})
# Get messages
messages = main_queue.get_messages(count=5)
# Process messages
for msg in messages:
try:
# Process message...
main_queue.acknowledge_messages([msg.id])
except Exception as e:
main_queue.move_to_dlq([msg.id], f"Error: {e}", dlq)Requirements
- Python 3.11+
- Redis 5.0+ (for Streams support)
License
Apache-2.0