#task-queue #tokio #async-task #job-queue #worker #redis-queue #graceful-shutdown #postgresql #back-ends #jobs

smithyq

A high-performance async task worker library for Rust - forge your tasks with type safety

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

Download history 360/week @ 2025-05-27

360 downloads per month

MIT license

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.

Crates.io Documentation License Build Status

πŸš€ 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