[package]
name = "rumdl"
version = "0.0.171"
edition = "2024"
rust-version = "1.91.0"
description = "A fast Markdown linter written in Rust (Ru(st) MarkDown Linter)"
authors = ["Ruben J. Jongejan <ruben.jongejan@gmail.com>"]
license = "MIT"
repository = "https://github.com/rvben/rumdl"
homepage = "https://github.com/rvben/rumdl"
documentation = "https://github.com/rvben/rumdl/blob/main/docs"
readme = "README.md"
keywords = ["markdown", "linter", "markdown-linter", "static-analysis", "documentation"]
categories = ["command-line-utilities", "development-tools", "text-processing"]
exclude = [".github/", ".gitignore", "*.bak"]

[lib]
name = "rumdl_lib"
crate-type = ["rlib"]

[[bin]]
name = "rumdl"
path = "src/main.rs"

[profile.release]
lto = true           # Enable Link-Time Optimization
strip = true         # Strip symbols from binary
opt-level = "z"      # Optimize for size (alternative: "s" for small, "3" for speed)
codegen-units = 1    # Better optimization but slower compile times

[dependencies]
clap = { version = "4.5", features = ["derive"] }
colored = "3.0.0"
fancy-regex = "0.14.0"
ignore = "0.4.23"
itertools = "0.14"
lazy_static = "1.5.0"
rayon = { version = "1.10.0", optional = true }
serde = { version = "1.0", features = ["derive"] }
serde_yaml = "0.9.34"
serde_json = "1.0"
toml = "0.8.20"
strsim = "0.11"
thiserror = "2.0.12"
once_cell = "1.21.3"
globset = "0.4.16"
anyhow = "1.0"
log = "0.4.27"
markdown = "1.0"
pulldown-cmark = "0.12.2"
regex = "1.11"
toml_edit = "0.22"
dyn-clone = "1"
url = { version = "2", features = ["serde"] }
unicode-normalization = "0.1"
memmap2 = "0.9"
schemars = "0.8"
unicode-width = "0.2"

# LSP dependencies
tower-lsp = "0.20"
tokio = { version = "1.0", features = ["full"] }
tokio-util = "0.7"
tower = "0.5.2"
tower-service = "0.3"
env_logger = "0.11"
num_cpus = "1.16"
chrono = { version = "0.4", features = ["serde"] }
notify = "6.1"
etcetera = "0.8"
blake3 = "1.5"

[features]
default = ["parallel"]
parallel = ["rayon"]
profiling = []

[dev-dependencies]
assert_cmd = "2.0.17"
predicates = "3.1.3"
tempfile = "3.19.1"
proptest = "1.6.0"
criterion = { version = "0.5", features = ["html_reports"] }
rand = "0.9.1"
pretty_assertions = "1.4"
unicode-segmentation = "1.12"
serial_test = "3.2"
jsonschema = "0.22"

[target.'cfg(not(target_env = "msvc"))'.dependencies]
tikv-jemallocator = "0.6"

[target.'cfg(target_env = "msvc")'.dependencies]
mimalloc = { version = "0.1", default-features = false }
