prek 0.2.21

Better `pre-commit`, re-engineered in Rust
[[bin]]
name = "prek"
path = "src/main.rs"

[build-dependencies.fs-err]
version = "3.1.0"

[dependencies.anstream]
version = "0.6.15"

[dependencies.anstyle-query]
version = "1.1.5"

[dependencies.anyhow]
version = "1.0.86"

[dependencies.async-compression]
features = ["gzip", "xz", "tokio"]
version = "0.4.18"

[dependencies.async_zip]
features = ["deflate", "tokio"]
package = "astral_async_zip"
version = "0.0.17"

[dependencies.axoupdater]
default-features = false
features = ["github_releases"]
optional = true
version = "0.9.0"

[dependencies.bstr]
version = "1.11.0"

[dependencies.cargo_metadata]
version = "0.23.1"

[dependencies.clap]
features = ["derive", "env", "string", "wrap_help"]
version = "4.5.16"

[dependencies.clap_complete]
features = ["unstable-dynamic"]
version = "4.5.37"

[dependencies.ctrlc]
version = "3.4.5"

[dependencies.dunce]
version = "1.0.5"

[dependencies.etcetera]
version = "0.11.0"

[dependencies.fancy-regex]
version = "0.16.0"

[dependencies.fs-err]
features = ["tokio"]
version = "3.1.0"

[dependencies.futures]
version = "0.3.31"

[dependencies.hex]
version = "0.4.3"

[dependencies.http]
version = "1.1.0"

[dependencies.ignore]
version = "0.4.23"

[dependencies.indicatif]
version = "0.18.0"

[dependencies.indoc]
version = "2.0.5"

[dependencies.itertools]
version = "0.14.0"

[dependencies.lazy-regex]
version = "3.4.2"

[dependencies.levenshtein]
version = "1.0.5"

[dependencies.liblzma]
features = ["static"]
version = "0.4.5"

[dependencies.memchr]
version = "2.7.5"

[dependencies.owo-colors]
version = "4.1.0"

[dependencies.path-clean]
version = "1.0.1"

[dependencies.prek-consts]
version = "0.2.21"

[dependencies.quick-xml]
version = "0.38"

[dependencies.rand]
version = "0.9.0"

[dependencies.rayon]
version = "1.10.0"

[dependencies.reqwest]
default-features = false
features = ["http2", "stream", "json", "rustls-tls-native-roots", "rustls-tls-webpki-roots"]
version = "0.12.9"

[dependencies.rustc-hash]
version = "2.1.1"

[dependencies.same-file]
version = "1.0.6"

[dependencies.semver]
features = ["serde"]
version = "1.0.24"

[dependencies.serde]
features = ["derive"]
version = "1.0.210"

[dependencies.serde_json]
features = ["unbounded_depth"]
version = "1.0.132"

[dependencies.serde_stacker]
version = "0.1.12"

[dependencies.serde_yaml]
version = "0.9.34"

[dependencies.shlex]
version = "1.3.0"

[dependencies.smallvec]
version = "1.15.1"

[dependencies.target-lexicon]
version = "0.13.0"

[dependencies.tempfile]
version = "3.13.0"

[dependencies.textwrap]
version = "0.16.1"

[dependencies.thiserror]
version = "2.0.11"

[dependencies.tokio]
features = ["fs", "process", "rt", "sync", "macros", "net"]
version = "1.47.1"

[dependencies.tokio-tar]
package = "astral-tokio-tar"
version = "0.5.1"

[dependencies.tokio-util]
version = "0.7.13"

[dependencies.toml]
default-features = false
features = ["fast_hash", "parse", "preserve_order", "serde"]
version = "0.9.5"

[dependencies.tracing]
version = "0.1.40"

[dependencies.tracing-subscriber]
features = ["env-filter"]
version = "0.3.20"

[dependencies.unicode-width]
version = "0.2.0"

[dependencies.walkdir]
version = "2.5.0"

[dependencies.which]
version = "8.0.0"

[dev-dependencies.assert_cmd]
features = ["color"]
version = "2.0.16"

[dev-dependencies.assert_fs]
version = "1.1.2"

[dev-dependencies.etcetera]
version = "0.11.0"

[dev-dependencies.insta]
features = ["filters"]
version = "1.40.0"

[dev-dependencies.insta-cmd]
version = "0.6.0"

[dev-dependencies.markdown]
version = "1.0.0"

[dev-dependencies.predicates]
version = "3.1.2"

[dev-dependencies.pretty_assertions]
version = "1.4.1"

[dev-dependencies.regex]
version = "1.11.0"

[dev-dependencies.tempfile]
version = "3.13.0"

[features]
default = ["docker"]
docker = []
profiler = ["dep:pprof", "pprof/flamegraph"]
self-update = ["dep:axoupdater"]

[lints.clippy]
char_lit_as_u8 = "allow"
collapsible_else_if = "allow"
collapsible_if = "allow"
dbg_macro = "warn"
empty_drop = "warn"
empty_structs_with_brackets = "warn"
exit = "warn"
get_unwrap = "warn"
implicit_hasher = "allow"
map_unwrap_or = "allow"
match_same_arms = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
print_stderr = "warn"
print_stdout = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
rest_pat_in_fully_bound_structs = "warn"
similar_names = "allow"
too_many_arguments = "allow"
too_many_lines = "allow"
used_underscore_binding = "allow"

[lints.clippy.pedantic]
level = "warn"
priority = -2

[lints.rust]
dead_code = "allow"

[package]
authors = ["j178 <hi@j178.dev>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
default-run = "prek"
description = "Better `pre-commit`, re-engineered in Rust"
edition = "2024"
homepage = "https://prek.j178.dev/"
license = "MIT"
name = "prek"
readme = "README.md"
repository = "https://github.com/j178/prek"
version = "0.2.21"

[package.metadata.binstall]
pkg-fmt = "tgz"
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }{ archive-suffix }"

[package.metadata.binstall.overrides.aarch64-pc-windows-msvc]
pkg-fmt = "zip"
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.zip"

[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.zip"

[package.metadata.cargo-shear]
ignored = ["liblzma"]

[profile.dist]
inherits = "release"

[profile.profiling]
codegen-units = 16
debug = 2
inherits = "release"
lto = false
strip = false

[profile.release]
codegen-units = 1
lto = "fat"
strip = true

[target."cfg(unix)".dependencies.libc]
version = "0.2.164"

[target."cfg(unix)".dependencies.pprof]
optional = true
version = "0.15.0"

[target."cfg(unix)".dependencies.prek-pty]
version = "0.2.21"

[[test]]
name = "auto_update"
path = "tests/auto_update.rs"

[[test]]
name = "builtin_hooks"
path = "tests/builtin_hooks.rs"

[[test]]
name = "cache"
path = "tests/cache.rs"

[[test]]
name = "hook_impl"
path = "tests/hook_impl.rs"

[[test]]
name = "install"
path = "tests/install.rs"

[[test]]
name = "languages"
path = "tests/languages/main.rs"

[[test]]
name = "list"
path = "tests/list.rs"

[[test]]
name = "meta_hooks"
path = "tests/meta_hooks.rs"

[[test]]
name = "run"
path = "tests/run.rs"

[[test]]
name = "sample_config"
path = "tests/sample_config.rs"

[[test]]
name = "try_repo"
path = "tests/try_repo.rs"

[[test]]
name = "validate"
path = "tests/validate.rs"

[[test]]
name = "workspace"
path = "tests/workspace.rs"