[package]
name = "ccboard-core"
description = "Core library for ccboard - parsers, models, store, watcher"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
documentation.workspace = true
keywords.workspace = true
categories.workspace = true

[dependencies]
# Serialization
serde.workspace = true
serde_json.workspace = true
serde_yaml.workspace = true

# Time
chrono.workspace = true

# Error handling
anyhow.workspace = true
thiserror.workspace = true

# Async
tokio.workspace = true

# File watching
notify.workspace = true
notify-debouncer-mini.workspace = true

# File system
walkdir.workspace = true
dirs.workspace = true

# Regex
regex.workspace = true

# Logging
tracing.workspace = true

# HTTP client (for pricing updates) - rustls-tls avoids native-tls 0.2.17 build regression
reqwest = { version = "0.12", features = ["json", "rustls-tls"], default-features = false }

# Concurrency (AMENDED)
parking_lot.workspace = true
dashmap.workspace = true

# Caching
moka.workspace = true
once_cell.workspace = true
rusqlite = { version = "0.32", features = ["bundled"] }
toml = "0.8"
bincode = "1.3"

# Graph algorithms
petgraph = "0.6"

# Syntax highlighting (HTML export)
syntect = { version = "5.2", default-features = false, features = ["default-syntaxes", "default-themes", "html", "regex-fancy"] }

[dev-dependencies]
tokio = { workspace = true, features = ["test-util"] }
tempfile = "3"
criterion = { version = "0.5", features = ["async_tokio"] }

[[bench]]
name = "startup_bench"
harness = false

[[bench]]
name = "analytics_bench"
harness = false
