[package]
name = "benchkit"
version = "0.17.0"
edition = "2021"
authors = [
"Kostiantyn Wandalen <wandalen@obox.systems>",
]
license = "MIT"
readme = "readme.md"
documentation = "https://docs.rs/benchkit"
repository = "https://github.com/Wandalen/wTools/tree/master/module/core/benchkit"
homepage = "https://github.com/Wandalen/wTools/tree/master/module/core/benchkit"
description = """
Lightweight benchmarking toolkit focused on practical performance analysis and report generation.
Non-restrictive alternative to criterion, designed for easy integration and markdown report generation.
"""
categories = [ "development-tools", "development-tools::profiling" ]
keywords = [ "benchmark", "performance", "toolkit", "markdown", "reports" ]
[package.metadata.docs.rs]
features = [ "full" ]
all-features = false
[features]
default = [
"enabled",
"integration",
"markdown_reports",
"data_generators",
"criterion_compat",
]
full = [
"enabled",
"integration",
"markdown_reports",
"data_generators",
"criterion_compat",
"html_reports",
"json_reports",
"statistical_analysis",
"comparative_analysis",
"optimization_hints",
"diff_analysis",
"visualization",
]
enabled = []
integration = []
markdown_reports = [ "enabled", "dep:pulldown-cmark", "dep:chrono" ]
html_reports = [ "markdown_reports", "dep:tera" ]
json_reports = [ "enabled", "dep:serde_json", "dep:chrono" ]
statistical_analysis = [ "enabled", "dep:statistical" ]
comparative_analysis = [ "enabled" ]
optimization_hints = [ "statistical_analysis" ]
data_generators = [ "enabled", "dep:rand" ]
criterion_compat = [ "enabled", "dep:criterion" ]
diff_analysis = [ "enabled" ]
visualization = [ "enabled", "dep:plotters" ]
no_std = []
use_alloc = [ "no_std" ]
[lints]
workspace = true
[dependencies]
error_tools = { workspace = true, features = [ "enabled" ] }
serde_json = { workspace = true, optional = true }
rand = { workspace = true, optional = true }
chrono = { workspace = true, features = [ "serde" ], optional = true }
criterion = { workspace = true, features = [ "html_reports" ], optional = true }
pulldown-cmark = { version = "0.13", optional = true }
tera = { version = "1.20", optional = true }
statistical = { version = "1.0", optional = true }
plotters = { version = "0.3.7", optional = true, default-features = false, features = ["svg_backend", "bitmap_backend"] }
[dev-dependencies]
tempfile = { workspace = true }
uuid = { workspace = true, features = [ "v4" ] }