qrush 3.0.1

Lightweight Job Queue and Task Scheduler for Rust (Actix/Axum + Redis + Cron)
Documentation
# Changelog

All notable changes to **qrush** are documented here. The format is based on
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
adheres to [Semantic Versioning](https://semver.org/spec/v2.1.1.html).

## [3.0.1]

Slimmer by default, so qrush is cheaper to embed in another app or framework.
No library API changed; this is a dependency and packaging change.

### Breaking

- **The `qrush` and `qrush-engine` binaries now require the `cli` feature.**
  Install them with `cargo install qrush --features cli`. Library users get a
  leaner build in exchange: `clap`, `colored`, `gethostname`, `dotenvy` and
  `tracing-subscriber` are no longer compiled for the library.
  - `tracing-subscriber` moving behind `cli` is the notable one — installing a
    subscriber is the application's job, and a library that pulls one in invites
    duplicate-subscriber bugs. If your app relied on qrush bringing it in, add
    `tracing-subscriber` to your own `Cargo.toml`.
- **`tokio` is no longer pulled in with `features = ["full"]`.** The library now
  requests only `rt`, `time`, `sync`, `signal` and `macros`; the `cli` feature
  adds `rt-multi-thread`. If you depended on qrush transitively enabling the full
  tokio surface, declare the tokio features you need in your own manifest (most
  apps already do).

### Removed

- `lazy_static` — it was declared but unused.

### Changed

- Default library dependency graph drops from ~139 to ~109 transitive crates.

## [2.1.1]

### Breaking

- **The dashboard is no longer enabled by default.** `default` features are now
  empty, so a plain `qrush = "2.1.1"` gives you `enqueue` + workers with no web
  stack. To keep the dashboard, opt into a framework feature (see _Migrating_
  below).
- The single `dashboard` feature has been replaced by per-framework features.
  `dashboard` remains as a **back-compat alias for `dashboard-actix`**, so
  `features = ["dashboard"]` still gives you the Actix dashboard.

### Added

- **Axum support for the dashboard** via the new `dashboard-axum` feature.
  Mount it with `qrush::routes::axum_route::qrush_metrics_router()`, which
  returns an `axum::Router` you nest under your app. Serves the same
  `/qrush/metrics/...` paths as the Actix adapter.
- `dashboard-actix` feature (the Actix dashboard, unchanged public API:
  `qrush::routes::metrics_route::qrush_metrics_routes`).
- Framework-neutral service layer: dashboard handlers now return a
  `DashboardResponse`, with thin Actix/Axum adapters converting it to each
  framework's response type.
- Runnable examples for both frameworks: `examples/actix_dashboard.rs` and
  `examples/axum_dashboard.rs`.

### Migrating from 1.x

| | 1.x | 2.0 |
|---|---|---|
| Dashboard default | on (Actix) | off |
| Enable Actix dashboard | (default) | `features = ["dashboard-actix"]` |
| Enable Axum dashboard | not available | `features = ["dashboard-axum"]` |

```toml
# 1.x
qrush = "1.0.1"

# 2.0 — Actix (equivalent to the old default)
qrush = { version = "2.1.1", features = ["dashboard-actix"] }
```

No code changes are required for Actix users — only the Cargo feature. The
route-wiring function and all queue/worker/cron APIs are unchanged.

## [1.0.1]

- Documentation and packaging fixes; first widely-published stable release.

## [1.0.0]

- First stable release: Redis-backed job queue, delayed jobs, cron scheduling,
  worker pools, and the built-in Actix metrics dashboard.

[2.1.1]: https://github.com/srotas-space/qrush/releases/tag/v2.1.1
[1.0.1]: https://github.com/srotas-space/qrush/releases/tag/v1.0.1
[1.0.0]: https://github.com/srotas-space/qrush/releases/tag/v1.0.0