[package]
edition = "2021"
name = "benchkit"
version = "0.17.0"
authors = ["Kostiantyn Wandalen <wandalen@obox.systems>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
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.
"""
homepage = "https://github.com/Wandalen/wTools/tree/master/module/core/benchkit"
documentation = "https://docs.rs/benchkit"
readme = "readme.md"
keywords = [
"benchmark",
"performance",
"toolkit",
"markdown",
"reports",
]
categories = [
"development-tools",
"development-tools::profiling",
]
license = "MIT"
repository = "https://github.com/Wandalen/wTools/tree/master/module/core/benchkit"
[package.metadata.docs.rs]
features = ["full"]
all-features = false
[features]
comparative_analysis = ["enabled"]
criterion_compat = [
"enabled",
"dep:criterion",
]
data_generators = [
"enabled",
"dep:rand",
]
default = [
"enabled",
"integration",
"markdown_reports",
"data_generators",
"criterion_compat",
]
diff_analysis = ["enabled"]
enabled = []
full = [
"enabled",
"integration",
"markdown_reports",
"data_generators",
"criterion_compat",
"html_reports",
"json_reports",
"statistical_analysis",
"comparative_analysis",
"optimization_hints",
"diff_analysis",
"visualization",
]
html_reports = [
"markdown_reports",
"dep:tera",
]
integration = []
json_reports = [
"enabled",
"dep:serde_json",
"dep:chrono",
]
markdown_reports = [
"enabled",
"dep:pulldown-cmark",
"dep:chrono",
]
no_std = []
optimization_hints = ["statistical_analysis"]
statistical_analysis = [
"enabled",
"dep:statistical",
]
use_alloc = ["no_std"]
visualization = [
"enabled",
"dep:plotters",
]
[lib]
name = "benchkit"
path = "src/lib.rs"
[[example]]
name = "advanced_usage_patterns"
path = "examples/advanced_usage_patterns.rs"
[[example]]
name = "cargo_bench_integration"
path = "examples/cargo_bench_integration.rs"
[[example]]
name = "cicd_regression_detection"
path = "examples/cicd_regression_detection.rs"
[[example]]
name = "cv_improvement_patterns"
path = "examples/cv_improvement_patterns.rs"
[[example]]
name = "diff_example"
path = "examples/diff_example.rs"
[[example]]
name = "enhanced_features_demo"
path = "examples/enhanced_features_demo.rs"
[[example]]
name = "error_handling_patterns"
path = "examples/error_handling_patterns.rs"
[[example]]
name = "historical_data_management"
path = "examples/historical_data_management.rs"
[[example]]
name = "integration_workflows"
path = "examples/integration_workflows.rs"
[[example]]
name = "parser_integration_test"
path = "examples/parser_integration_test.rs"
[[example]]
name = "plotting_example"
path = "examples/plotting_example.rs"
[[example]]
name = "regression_analysis_comprehensive"
path = "examples/regression_analysis_comprehensive.rs"
[[example]]
name = "statistical_analysis_example"
path = "examples/statistical_analysis_example.rs"
[[example]]
name = "strs_tools_actual_integration"
path = "examples/strs_tools_actual_integration.rs"
[[example]]
name = "strs_tools_comprehensive_test"
path = "examples/strs_tools_comprehensive_test.rs"
[[example]]
name = "strs_tools_manual_test"
path = "examples/strs_tools_manual_test.rs"
[[example]]
name = "strs_tools_transformation"
path = "examples/strs_tools_transformation.rs"
[[example]]
name = "templates_comprehensive"
path = "examples/templates_comprehensive.rs"
[[example]]
name = "unilang_parser_benchkit_integration"
path = "examples/unilang_parser_benchkit_integration.rs"
[[example]]
name = "unilang_parser_real_world_benchmark"
path = "examples/unilang_parser_real_world_benchmark.rs"
[[example]]
name = "update_chain_comprehensive"
path = "examples/update_chain_comprehensive.rs"
[[example]]
name = "validation_comprehensive"
path = "examples/validation_comprehensive.rs"
[[test]]
name = "analysis"
path = "tests/analysis.rs"
[[test]]
name = "basic_functionality"
path = "tests/basic_functionality.rs"
[[test]]
name = "comparison"
path = "tests/comparison.rs"
[[test]]
name = "data_generation"
path = "tests/data_generation.rs"
[[test]]
name = "diff"
path = "tests/diff.rs"
[[test]]
name = "documentation"
path = "tests/documentation.rs"
[[test]]
name = "file_system_operations_bug_reproducer_test"
path = "tests/file_system_operations_bug_reproducer_test.rs"
[[test]]
name = "generators"
path = "tests/generators.rs"
[[test]]
name = "measurement"
path = "tests/measurement.rs"
[[test]]
name = "memory_tracking"
path = "tests/memory_tracking.rs"
[[test]]
name = "parser_analysis"
path = "tests/parser_analysis.rs"
[[test]]
name = "plotting"
path = "tests/plotting.rs"
[[test]]
name = "profiling_test"
path = "tests/profiling_test.rs"
[[test]]
name = "reporting"
path = "tests/reporting.rs"
[[test]]
name = "scaling"
path = "tests/scaling.rs"
[[test]]
name = "statistical"
path = "tests/statistical.rs"
[[test]]
name = "suite"
path = "tests/suite.rs"
[[test]]
name = "templates"
path = "tests/templates.rs"
[[test]]
name = "throughput"
path = "tests/throughput.rs"
[[test]]
name = "update_chain"
path = "tests/update_chain.rs"
[[test]]
name = "validation"
path = "tests/validation.rs"
[dependencies.chrono]
version = "0.4.34"
features = ["serde"]
optional = true
[dependencies.criterion]
version = "0.5.1"
features = ["html_reports"]
optional = true
[dependencies.error_tools]
version = "~0.37.0"
features = ["enabled"]
default-features = false
[dependencies.plotters]
version = "0.3.7"
features = [
"svg_backend",
"bitmap_backend",
]
optional = true
default-features = false
[dependencies.pulldown-cmark]
version = "0.13"
optional = true
[dependencies.rand]
version = "0.8.5"
optional = true
[dependencies.serde_json]
version = "1.0.140"
optional = true
[dependencies.statistical]
version = "1.0"
optional = true
[dependencies.tera]
version = "1.20"
optional = true
[dev-dependencies.tempfile]
version = "3.20.0"
[dev-dependencies.uuid]
version = "1.11"
features = ["v4"]
[lints.clippy]
absolute_paths = "allow"
arbitrary_source_item_ordering = "allow"
cast_precision_loss = "allow"
doc_include_without_cfg = "warn"
implicit_return = "allow"
inline_always = "allow"
items_after_statements = "allow"
large_enum_variant = "allow"
missing_docs_in_private_items = "allow"
missing_inline_in_public_items = "allow"
mod_module_files = "allow"
module_name_repetitions = "allow"
pub_use = "allow"
question_mark_used = "allow"
single_call_fn = "allow"
std_instead_of_alloc = "allow"
std_instead_of_core = "warn"
struct_excessive_bools = "allow"
undocumented_unsafe_blocks = "deny"
wildcard_imports = "allow"
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_debug_implementations = "warn"
missing_docs = "warn"
unsafe-code = "deny"
[lints.rust.future_incompatible]
level = "warn"
priority = -1
[lints.rust.rust_2018_idioms]
level = "warn"
priority = -1
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ['cfg(feature, values("diagnostics_runtime_assertions", "diagnostics_compiletime_assertions", "diagnostics_memory_layout"))']