[package] name = "livechat" version = "0.1.0" edition = "2024" license = "MIT" [features] default = [] # Axum SSE adapter. The rest of the crate has no framework dependency. axum = ["dep:axum", "dep:async-stream", "dep:tokio-stream", "dep:serde_json", "dep:tracing"] [dependencies] async-trait = "0.1" dashmap = "6" serde = { version = "1", features = ["derive"] } thiserror = "2" tokio = { version = "1", features = ["sync"] } uuid = { version = "1", features = ["v4", "serde"] } async-stream = { version = "0.3", optional = true } axum = { version = "0.8", optional = true } serde_json = { version = "1", optional = true } tokio-stream = { version = "0.1", features = ["sync"], optional = true } tracing = { version = "0.1", optional = true } [dev-dependencies] serde_json = "1" tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread", "sync", "time"] } [lints.rust] unused = "warn" unreachable_pub = "warn" [lints.clippy] pedantic = { level = "warn", priority = -1 } # Allow-list tuned from a measured breakdown across server/multithreaded/pter # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything # else in `pedantic` stays a warning. Keep this block identical across repos. module_name_repetitions = "allow" # Doc lints. No docs-completeness push is underway. missing_errors_doc = "allow" missing_panics_doc = "allow" doc_markdown = "allow" # Numeric casts. Endemic and mostly intentional in size and byte math. cast_possible_truncation = "allow" cast_sign_loss = "allow" cast_precision_loss = "allow" cast_possible_wrap = "allow" cast_lossless = "allow" # Subjective structure and style nags. High churn, low signal. must_use_candidate = "allow" too_many_lines = "allow" struct_excessive_bools = "allow" similar_names = "allow" items_after_statements = "allow" single_match_else = "allow" # Frequent false-positives in TUI and router-heavy code. match_same_arms = "allow" unnecessary_wraps = "allow" type_complexity = "allow"