cargo-bless 0.1.0

Modernize your Rust dependencies with blessed.rs + live intel
Documentation
[
  {
    "pattern": "chrono",
    "replacement": "time",
    "kind": "ModernAlternative",
    "reason": "Smaller footprint, faster compiles for UTC-only use",
    "source": "blessed.rs",
    "condition": "UTC-only usage"
  },
  {
    "pattern": "lazy_static",
    "replacement": "std::sync::LazyLock",
    "kind": "StdReplacement",
    "reason": "Stable since Rust 1.80 — zero extra dependencies",
    "source": "std docs"
  },
  {
    "pattern": "once_cell",
    "replacement": "std::sync::LazyLock / OnceLock",
    "kind": "StdReplacement",
    "reason": "LazyLock and OnceLock stable since Rust 1.80 — zero extra dependencies",
    "source": "std docs"
  },
  {
    "pattern": "structopt",
    "replacement": "clap v4 (derive)",
    "kind": "ModernAlternative",
    "reason": "Fully integrated and actively maintained",
    "source": "blessed.rs"
  },
  {
    "pattern": "actix-web",
    "replacement": "axum",
    "kind": "ModernAlternative",
    "reason": "Lightweight, Tokio-native, ergonomic",
    "source": "blessed.rs"
  },
  {
    "pattern": "iron",
    "replacement": "axum",
    "kind": "Unmaintained",
    "reason": "Iron is unmaintained — axum is the modern Tokio-native choice",
    "source": "blessed.rs"
  },
  {
    "pattern": "memmap",
    "replacement": "memmap2",
    "kind": "Unmaintained",
    "reason": "Original crate unmaintained — memmap2 is the maintained fork",
    "source": "RustSec"
  },
  {
    "pattern": "failure",
    "replacement": "anyhow + thiserror",
    "kind": "Unmaintained",
    "reason": "failure is deprecated and unmaintained — anyhow (app) + thiserror (lib) is the standard",
    "source": "blessed.rs"
  },
  {
    "pattern": "log",
    "replacement": "tracing",
    "kind": "ModernAlternative",
    "reason": "Structured, async-aware, span-based — the modern standard for observability",
    "source": "blessed.rs"
  },
  {
    "pattern": "reqwest+serde_json",
    "replacement": "reqwest with \"json\" feature",
    "kind": "FeatureOptimization",
    "reason": "Built-in deserialization, one fewer dependency",
    "source": "reqwest docs"
  },
  {
    "pattern": "tokio+async-std",
    "replacement": "tokio only",
    "kind": "ComboWin",
    "reason": "Dominant runtime ecosystem — no need for two runtimes",
    "source": "blessed.rs"
  },
  {
    "pattern": "env_logger",
    "replacement": "tracing-subscriber",
    "kind": "ModernAlternative",
    "reason": "Pairs with tracing — structured, filterable, async-aware logging",
    "source": "blessed.rs"
  },
  {
    "pattern": "log+env_logger",
    "replacement": "tracing + tracing-subscriber",
    "kind": "ComboWin",
    "reason": "Full modern observability stack — structured spans + subscriber",
    "source": "blessed.rs"
  },
  {
    "pattern": "warp",
    "replacement": "axum",
    "kind": "ModernAlternative",
    "reason": "axum is the actively maintained Tokio-native web framework",
    "source": "blessed.rs"
  },
  {
    "pattern": "rocket",
    "replacement": "axum",
    "kind": "ModernAlternative",
    "reason": "axum is lighter, Tokio-native, and the blessed.rs pick for new projects",
    "source": "blessed.rs"
  }
]