# queuerious
Rust SDK for the [Queuerious](https://queuerious.dev) job queue observability platform.
Report job lifecycle events (started, completed, failed, retrying, dead-lettered) from your Rust applications to Queuerious for real-time monitoring, alerting, and debugging.
## Installation
```toml
[dependencies]
queuerious = "0.1"
```
### Optional features
| `tower` | Tower middleware for automatic job tracking |
| `metrics` | Queue metrics collection |
| `commands` | Remote command execution support |
| `agent` | Full agent mode (enables `metrics` + `commands`) |
```toml
# Example: enable Tower middleware
queuerious = { version = "0.1", features = ["tower"] }
```
## Quick start
```rust
use queuerious::{QueuriousClient, JobEvent, Backend};
#[tokio::main]
async fn main() -> Result<(), queuerious::QueuriousError> {
let client = QueuriousClient::builder()
.api_key("qk_your_api_key")
.endpoint("https://api.queuerious.dev")
.build()?;
// Report a job started event (non-blocking, batched)
client.report(
JobEvent::started("email-queue", Backend::RabbitMQ, "job-123", "SendEmail")
.payload(serde_json::json!({"to": "user@example.com"}))
.build()
)?;
// Gracefully shut down (flushes pending events)
client.shutdown().await?;
Ok(())
}
```
## Queue backend adapters
For automatic lifecycle tracking with specific queue backends, use one of the adapter crates:
- [`queuerious-lapin`](https://crates.io/crates/queuerious-lapin) — RabbitMQ via lapin
## License
Licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or <http://www.apache.org/licenses/LICENSE-2.0>)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or <http://opensource.org/licenses/MIT>)
at your option.