[package]
edition = "2024"
rust-version = "1.95"
name = "perfgate"
version = "0.17.0"
authors = ["Effortless Metrics"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Core library for perfgate performance budgets and baseline diffs"
homepage = "https://github.com/EffortlessMetrics/perfgate"
documentation = "https://docs.rs/perfgate"
readme = "README.md"
keywords = [
"performance",
"benchmarking",
"budgets",
"baseline",
"ci",
]
categories = [
"development-tools",
"command-line-utilities",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/EffortlessMetrics/perfgate"
resolver = "2"
[features]
default = []
github = [
"dep:reqwest",
"dep:tracing",
]
probe = []
probe-criterion = [
"probe",
"dep:criterion",
]
probe-tracing = [
"probe",
"dep:tracing",
"dep:tracing-subscriber",
]
[lib]
name = "perfgate"
path = "src/lib.rs"
[dependencies.anyhow]
version = "1.0.102"
[dependencies.criterion]
version = "0.8.2"
optional = true
default-features = false
[dependencies.glob]
version = "0.3.2"
[dependencies.handlebars]
version = "6.3"
[dependencies.hostname]
version = "0.4"
[dependencies.humantime]
version = "2.3.0"
[dependencies.num_cpus]
version = "1"
[dependencies.perfgate-types]
version = "0.17.0"
[dependencies.regex]
version = "1.12"
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls-webpki-roots",
]
optional = true
default-features = false
[dependencies.schemars]
version = "1.2.1"
features = [
"uuid1",
"chrono04",
]
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.149"
[dependencies.statrs]
version = "0.18.0"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.time]
version = "0.3.47"
features = ["formatting"]
[dependencies.toml]
version = "0.9.8"
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
optional = true
[dependencies.uuid]
version = "1.21.0"
features = ["v4"]
[dependencies.which]
version = "7"
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.insta]
version = "1.46.3"
features = ["json"]
[dev-dependencies.proptest]
version = "1.7"
[dev-dependencies.serde_json]
version = "1.0.149"
[dev-dependencies.tempfile]
version = "3.26.0"
[dev-dependencies.tokio]
version = "1"
features = [
"test-util",
"macros",
"rt-multi-thread",
]
[dev-dependencies.wiremock]
version = "0.6"
[target."cfg(unix)".dependencies.libc]
version = "0.2.182"
[target."cfg(windows)".dependencies.windows]
version = "0.60"
features = [
"Win32_Foundation",
"Win32_System_ProcessStatus",
"Win32_System_SystemInformation",
"Win32_System_Threading",
]
[lints.clippy]
dbg_macro = "deny"
manual_checked_ops = "warn"
manual_take = "warn"
same_length_and_capacity = "deny"
todo = "deny"
unimplemented = "deny"
unnecessary_trailing_comma = "warn"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.rust]
const_item_interior_mutations = "deny"
function_casts_as_integer = "deny"
unexpected_cfgs = "warn"
unsafe_code = "warn"
unsafe_op_in_unsafe_fn = "deny"
unused_must_use = "deny"
unused_visibilities = "warn"