3 releases
Uses new Rust 2024
new 0.1.2 | May 29, 2025 |
---|---|
0.1.1 | May 29, 2025 |
0.1.0 | May 27, 2025 |
#188 in Concurrency
360 downloads per month
185KB
3.5K
SLoC
π¨ SmithyQ
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.
π Features
- π 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
π¦ Installation
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"] }
π£οΈ Roadmap - Upcoming Features
π Queue Backends
- 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
π§ Middleware & Extensibility
- Tower Integration: Integration with Tower framework for composable middleware
- Logging middleware
- Rate limiting
- Authentication/Authorization
- Request/Response transformation
- Circuit breaker pattern
π― Advanced Features
- 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
π Monitoring & Observability
- Prometheus Metrics: Export metrics in Prometheus format
- OpenTelemetry: Full support for distributed tracing
- Dashboard: Web interface for real-time monitoring
Dependencies
~5β21MB
~288K SLoC