adrscope 0.3.0

A lightweight, zero-dependency visualization tool for Architecture Decision Records
Documentation
[package]
name = "adrscope"
version = "0.3.0"
edition = "2024"
rust-version = "1.85"
description = "A lightweight, zero-dependency visualization tool for Architecture Decision Records"
license = "MIT"
authors = ["Robert Allen <zircote@gmail.com>"]
repository = "https://github.com/zircote/adrscope"
homepage = "https://github.com/zircote/adrscope"
documentation = "https://docs.rs/adrscope"
readme = "README.md"
keywords = ["adr", "architecture", "documentation", "cli", "madr"]
categories = ["command-line-utilities", "development-tools"]
# Allowlist: the published crate ships only what the build needs. Without
# this, tracked repo internals (.claude/, .fastembed_cache/ model blobs,
# CI workflows) end up in the .crate archive.
include = [
    "src/**",
    "templates/**",
    "/README.md",
    "/CHANGELOG.md",
    "/LICENSE",
]

[lib]
name = "adrscope"
path = "src/lib.rs"

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

[dependencies]
# CLI framework
clap = { version = "4", features = ["derive"] }

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"

# Templating
askama = "0.14"

# Markdown parsing
pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] }

# Error handling
thiserror = "2"

# Date/time handling
time = { version = "0.3", features = ["serde", "formatting", "parsing", "macros"] }

# File globbing
glob = "0.3"

[dev-dependencies]
# Testing
proptest = "1"
tempfile = "3"
pretty_assertions = "1"

[profile.dev]
debug = 1
opt-level = 0

[profile.release]
opt-level = 3
lto = "thin"
codegen-units = 1
panic = "abort"
strip = true

[profile.release-debug]
inherits = "release"
debug = true
strip = false

[lints.rust]
unsafe_code = "forbid"
missing_docs = "warn"

[lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
cargo = { level = "warn", priority = -1 }

# Specific lints to deny
unwrap_used = "deny"
expect_used = "deny"
todo = "deny"
unimplemented = "deny"
dbg_macro = "deny"

# Allow for CLI output
print_stdout = "allow"
print_stderr = "allow"

# Allow in tests
panic = "allow"

# Allow in certain contexts
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
redundant_pub_crate = "allow"
doc_markdown = "allow"
double_must_use = "allow"
uninlined_format_args = "allow"
single_char_pattern = "allow"
unnecessary_sort_by = "allow"
missing_const_for_fn = "allow"
significant_drop_tightening = "allow"
missing_const_for_thread_local = "allow"

[features]
default = []
testing = []