[package]
name = "lessence"
version = "0.4.1"
edition = "2024"
rust-version = "1.90"
description = "Extract the essence of your logs — compress repetitive lines while preserving all unique information"
license = "MIT"
repository = "https://github.com/air-gapped/lessence"
readme = "README.md"
keywords = ["log-compression", "cli", "log-analysis", "devops", "deduplication"]
categories = ["command-line-utilities", "text-processing"]
autobenches = false
autotests = false
exclude = [".github/", ".ideas/", ".claude/", "examples/", "tests/", "benches/"]
[[bin]]
name = "lessence"
path = "src/main.rs"
test = false
[dependencies]
regex = "1.10"
mutants = "0.0.4"
clap = { version = "4.6", features = ["derive"] }
clap_complete = "4"
anyhow = "1.0"
chrono = { version = "0.4", default-features = false, features = ["clock"] }
ahash = "0.8"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
rayon = "1.12.0"
terminal_size = "0.4.4"
rand = { version = "0.9", default-features = false, features = ["alloc"] }
rand_chacha = "0.9"
[dev-dependencies]
criterion = { version = "0.8", features = ["html_reports"] }
tempfile = "3.0"
toml = "1.1"
regex = "1.10"
insta = "1"
proptest = "1"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "contract"
path = "tests/contract.rs"
[[test]]
name = "unit"
path = "tests/unit.rs"
[[test]]
name = "security"
path = "tests/security.rs"
[[test]]
name = "misc"
path = "tests/misc.rs"
[[bench]]
name = "folder_e2e"
harness = false
[[bench]]
name = "folder_streaming_only"
harness = false
[[bench]]
name = "folder_parallel_e2e"
harness = false
[[bench]]
name = "normalize_line"
harness = false
[[bench]]
name = "calibrate_rollup"
harness = false
[lints.clippy]
pedantic = { level = "warn", priority = -1 }
module_name_repetitions = "allow"
must_use_candidate = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
items_after_statements = "allow"
cast_possible_truncation = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
struct_excessive_bools = "allow"
similar_names = "allow"
too_many_lines = "allow"
doc_markdown = "allow"
unnecessary_wraps = "allow"
unused_self = "allow"
case_sensitive_file_extension_comparisons = "allow"
match_same_arms = "allow"
manual_split_once = "allow"
ignored_unit_patterns = "allow"
wildcard_in_or_patterns = "allow"
cast_possible_wrap = "allow"
needless_bool = "allow"
format_push_string = "allow"
manual_strip = "allow"
if_not_else = "allow"
match_wild_err_arm = "allow"
needless_pass_by_value = "warn"
[lints.rust]
unsafe_code = "forbid"
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }{ archive-suffix }"
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "tgz"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-fmt = "zip"
[profile.release]
lto = true
codegen-units = 1
panic = "abort"
strip = true
[profile.bench]
debug = true
[profile.test]
opt-level = 1
[profile.mutants]
inherits = "test"
opt-level = 1
debug = "none"