[package]
edition = "2024"
rust-version = "1.92.0"
name = "prek"
version = "0.3.8"
authors = ["j178 <hi@j178.dev>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Better `pre-commit`, re-engineered in Rust"
homepage = "https://prek.j178.dev/"
readme = "README.md"
license = "MIT"
repository = "https://github.com/j178/prek"
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }{ archive-suffix }"
pkg-fmt = "tgz"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.zip"
[package.metadata.binstall.overrides.aarch64-pc-windows-msvc]
pkg-fmt = "zip"
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }.zip"
[package.metadata.cargo-shear]
ignored = ["liblzma"]
[features]
default = ["docker"]
docker = []
profiler = [
"dep:pprof",
"pprof/flamegraph",
]
schemars = [
"dep:schemars",
"prek-identify/schemars",
]
self-update = ["dep:axoupdater"]
[[bin]]
name = "prek"
path = "src/main.rs"
[[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 = "identify"
path = "tests/identify.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 = "list_builtins"
path = "tests/list_builtins.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 = "skipped_hooks"
path = "tests/skipped_hooks.rs"
[[test]]
name = "try_repo"
path = "tests/try_repo.rs"
[[test]]
name = "validate"
path = "tests/validate.rs"
[[test]]
name = "workspace"
path = "tests/workspace.rs"
[[test]]
name = "yaml_to_toml"
path = "tests/yaml_to_toml.rs"
[dependencies.aho-corasick]
version = "1.1.4"
[dependencies.anstream]
version = "1.0.0"
[dependencies.anstyle-query]
version = "1.1.5"
[dependencies.anyhow]
version = "1.0.86"
[dependencies.async-compression]
version = "0.4.18"
features = [
"gzip",
"xz",
"tokio",
]
[dependencies.async_zip]
version = "0.0.17"
features = [
"deflate",
"tokio",
]
package = "astral_async_zip"
[dependencies.axoupdater]
version = "0.10.0"
features = ["github_releases"]
optional = true
default-features = false
[dependencies.bstr]
version = "1.11.0"
[dependencies.cargo_metadata]
version = "0.23.1"
[dependencies.clap]
version = "4.6.0"
features = [
"derive",
"env",
"string",
"wrap_help",
]
[dependencies.clap_complete]
version = "4.6.0"
features = ["unstable-dynamic"]
[dependencies.ctrlc]
version = "3.4.5"
[dependencies.dunce]
version = "1.0.5"
[dependencies.etcetera]
version = "0.11.0"
[dependencies.fancy-regex]
version = "0.17.0"
[dependencies.fs-err]
version = "3.3.0"
features = ["tokio"]
[dependencies.futures]
version = "0.3.31"
[dependencies.globset]
version = "0.4.18"
[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.json5]
version = "1.3.0"
[dependencies.lazy-regex]
version = "3.4.2"
[dependencies.levenshtein]
version = "1.0.5"
[dependencies.liblzma]
version = "0.4.5"
features = ["static"]
[dependencies.mea]
version = "0.6.3"
[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.3.8"
[dependencies.prek-identify]
version = "0.3.8"
features = ["serde"]
[dependencies.quick-xml]
version = "0.39"
[dependencies.rand]
version = "0.10.0"
[dependencies.rayon]
version = "1.10.0"
[dependencies.reqwest]
version = "0.13.2"
features = [
"http2",
"stream",
"json",
"rustls",
"system-proxy",
"socks",
]
default-features = false
[dependencies.rustc-hash]
version = "2.1.1"
[dependencies.same-file]
version = "1.0.6"
[dependencies.schemars]
version = "1.1.0"
optional = true
[dependencies.semver]
version = "1.0.24"
features = ["serde"]
[dependencies.serde]
version = "1.0.210"
features = ["derive"]
[dependencies.serde-saphyr]
version = "0.0.21"
default-features = false
[dependencies.serde_json]
version = "1.0.132"
features = [
"preserve_order",
"unbounded_depth",
]
[dependencies.serde_stacker]
version = "0.1.12"
[dependencies.shlex]
version = "1.3.0"
[dependencies.similar]
version = "2.7.0"
[dependencies.strum]
version = "0.28.0"
features = ["derive"]
[dependencies.target-lexicon]
version = "0.13.0"
[dependencies.tempfile]
version = "3.25.0"
[dependencies.thiserror]
version = "2.0.11"
[dependencies.tokio]
version = "1.47.1"
features = [
"fs",
"io-std",
"process",
"rt",
"sync",
"macros",
"net",
]
[dependencies.tokio-tar]
version = "0.6.0"
package = "astral-tokio-tar"
[dependencies.tokio-util]
version = "0.7.13"
[dependencies.toml]
version = "1.0.1"
features = [
"fast_hash",
"parse",
"preserve_order",
"serde",
]
default-features = false
[dependencies.toml_edit]
version = "0.25.1"
[dependencies.tracing]
version = "0.1.40"
[dependencies.tracing-subscriber]
version = "0.3.20"
features = ["env-filter"]
[dependencies.unicode-width]
version = "0.2.0"
default-features = false
[dependencies.walkdir]
version = "2.5.0"
[dependencies.webpki-root-certs]
version = "1.0.6"
[dependencies.which]
version = "8.0.0"
[dev-dependencies.assert_cmd]
version = "2.2.0"
[dev-dependencies.assert_fs]
version = "1.1.2"
[dev-dependencies.etcetera]
version = "0.11.0"
[dev-dependencies.insta]
version = "1.40.0"
features = ["filters"]
[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.25.0"
[dev-dependencies.textwrap]
version = "0.16.0"
[build-dependencies.fs-err]
version = "3.3.0"
features = ["tokio"]
[target."cfg(unix)".dependencies.libc]
version = "0.2.182"
[target."cfg(unix)".dependencies.pprof]
version = "0.15.0"
optional = true
[target."cfg(unix)".dependencies.prek-pty]
version = "0.3.8"
[target."cfg(unix)".dependencies.rustix]
version = "1.0.8"
features = [
"pty",
"process",
"fs",
"termios",
]
[lints.clippy]
collapsible_else_if = "allow"
collapsible_if = "allow"
dbg_macro = "warn"
empty_drop = "warn"
empty_structs_with_brackets = "warn"
exit = "warn"
get_unwrap = "warn"
if_not_else = "allow"
implicit_hasher = "allow"
items_after_statements = "allow"
iter-without-into-iter = "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"