# 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
| 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