dylint 3.1.2

A tool for running Rust lints from dynamic libraries
Documentation
[package]
name = "dylint"
version = "3.1.2"
authors = ["Samuel E. Moelius III <sam@moeli.us>"]
description = "A tool for running Rust lints from dynamic libraries"
edition = "2021"
license = "MIT OR Apache-2.0"
repository = "https://github.com/trailofbits/dylint"
rust-version = "1.73"

[dependencies]
ansi_term = "0.12"
anyhow = "1.0"
# smoelius: The `cargo` dependency should be kept in sync with dylint/src/metadata/cargo/toml.rs.
cargo = { version = "0.75", optional = true }
cargo-platform = { version = "0.1", optional = true }
cargo-util = { version = "0.2", optional = true }
cargo_metadata = "0.18"
dirs = "5.0"
dunce = { version = "1.0", optional = true }
fs_extra = { version = "1.3", optional = true }
glob = { version = "0.3", optional = true }
heck = { version = "0.5", optional = true }
hex = { version = "0.4", optional = true }
home = { version = "0.5", optional = true }
if_chain = { version = "1.0", optional = true }
is-terminal = "0.4"
log = "0.4"
once_cell = "1.19"
semver = "1.0"
serde = "1.0"
serde-untagged = { version = "0.1", optional = true }
serde_json = "1.0"
tempfile = "3.10"
toml = { version = "0.8", optional = true }
url = { version = "2.5", optional = true }
walkdir = "2.5"

# smoelius: Work around: https://github.com/curl/curl/issues/11893
# See: https://github.com/alexcrichton/curl-rust/issues/524#issuecomment-1703325064
curl-sys = { version = "0.4", features = [
    "force-system-lib-on-osx",
], optional = true }

dylint_internal = { version = "=3.1.2", path = "../internal", features = [
    "config",
    "git",
    "packaging",
    "rustup",
    "sed",
] }

[build-dependencies]
dylint_internal = { version = "=3.1.2", path = "../internal", features = [
    "cargo",
] }

[dev-dependencies]
env_logger = "0.11"

dylint_internal = { version = "=3.1.2", path = "../internal", features = [
    "examples",
] }

[features]
default = []
library_packages = ["__cargo_cli"]
package_options = [
    "heck",
    "if_chain",
    "dylint_internal/clippy_utils",
    "dylint_internal/git",
]
__cargo_cli = [
    "cargo-util",
    "dunce",
    "fs_extra",
    "glob",
    "hex",
    "home",
    "if_chain",
    "serde-untagged",
    "toml",
    "url",
]
__cargo_lib = [
    "cargo",
    "cargo-platform",
    "cargo-util",
    "curl-sys",
    "dunce",
    "glob",
    "if_chain",
    "serde-untagged",
    "toml",
]

# smoelius: When both `__cargo_cli` and `__cargo_lib` are enabled, we treat it as though
# `--features=cargo-lib` was passed but the user forgot to pass `--no-default-features`. This
# approach causes `fs_extra` to look like an unused dependency.
[package.metadata.cargo-udeps.ignore]
normal = ["fs_extra"]