Forge your tasks with type safety
SmithyQ is a high-performance async task worker library for Rust that brings the power of compile-time type safety to distributed task processing.
- 🔒 Type-Safe: Compile-time verification of task payloads and return types
- ⚡ High Performance: Built on Tokio for maximum async performance
- 🎯 Auto-Registration: Automatic task registration with macros
- 🔄 Multiple Backends: In-memory, Redis, and PostgreSQL queue support
- 📊 Observability: Built-in metrics, tracing, and monitoring
- 🛡️ Fault Tolerant: Graceful shutdown, retry logic, and error handling
- 📅 Scheduling: Support for delayed and recurring tasks
Add SmithyQ to your Cargo.toml:
[dependencies]
smithyq = "0.1"
# For Redis queue backend
smithyq = { version = "0.1", features = ["redis-queue"] }
# For PostgreSQL queue backend
smithyq = { version = "0.1", features = ["postgres-queue"] }
# For all features
smithyq = { version = "0.1", features = ["full"] }
- Redis Queue: Complete Redis backend implementation for distributed queue management
- RabbitMQ Queue: Support for RabbitMQ as backend for robust and scalable messaging
- AWS SQS: Integration with Amazon Simple Queue Service for cloud-native deployments
- Tower Integration: Integration with Tower framework for composable middleware
- Logging middleware
- Rate limiting
- Authentication/Authorization
- Request/Response transformation
- Circuit breaker pattern
- Dead Letter Queue: Automatic handling of failed tasks
- Task Prioritization: Priority system for task execution
- Batch Processing: Process tasks in batches for improved efficiency
- Health Checks: Endpoints for worker status monitoring
- Prometheus Metrics: Export metrics in Prometheus format
- OpenTelemetry: Full support for distributed tracing
- Dashboard: Web interface for real-time monitoring