[workspace]
members = [".", "web-ui"]

[package]
name = "repartee"
version = "0.8.4"
edition = "2024"
description = "A modern terminal IRC client built with Ratatui and Tokio"
license = "MIT"
repository = "https://github.com/outragedevs/repartee"
homepage = "https://repart.ee/"
readme = "README.md"
keywords = ["irc", "terminal", "tui", "chat", "client"]
categories = ["command-line-utilities", "network-programming"]
authors = ["outragedevs"]
exclude = [
    ".adal/", ".agent/", ".augment/", ".codebuddy/", ".commandcode/",
    ".continue/", ".crush/", ".factory/", ".goose/", ".iflow/",
    ".junie/", ".kilocode/", ".kiro/", ".kode/", ".mcpjam/",
    ".mux/", ".neovate/", ".openhands/", ".pi/", ".pochi/",
    ".qoder/", ".qwen/", ".roo/", ".trae/", ".vibe/",
    ".windsurf/", ".zencoder/", ".claude/",
    "docs/node_modules/", "docs/bun.lock",
]

[dependencies]
ratatui = "0.30"
crossterm = { version = "0.29", features = ["event-stream", "serde"] }
postcard = { version = "1.1", features = ["use-std"] }
libc = "0.2"
tokio = { version = "1.50", features = ["full"] }
irc = { version = "1.5.0", package = "irc-repartee" }
color-eyre = "0.6"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "1.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
futures = "0.3"
chrono = { version = "0.4", features = ["serde"] }
dirs = "6"
unicode-width = "0.2"
thiserror = "2.0"
indexmap = { version = "2", features = ["serde"] }
regex = "1"
rusqlite = { version = "0.39", features = ["bundled-full"] }
aes-gcm = "0.10"
rand = "0.10"
base64 = "0.22"
sha2 = "0.10"
hmac = "0.12"
pbkdf2 = { version = "0.12", features = ["simple"] }
uuid = { version = "1.21", features = ["v4"] }
hex = "0.4"
mlua = { version = "0.11.6", features = ["lua54", "vendored", "send"] }
ratatui-image = "10.0"
spellbook = "0.4"
image = "0.25"
reqwest = { version = "0.13", features = ["json", "rustls"], default-features = false }
axum = { version = "0.8", features = ["ws"] }
axum-extra = { version = "0.12", features = ["cookie-signed"] }
tower = { version = "0.5", features = ["limit"] }
rcgen = "0.14"
rustls-pemfile = "2"
tokio-rustls = "0.26"
hyper-util = { version = "0.1", features = ["tokio", "server-auto"] }
rust-embed = "8"
portable-pty = "0.9.0"
vt100 = "0.16.2"

[dev-dependencies]
tempfile = "3.26"

[lints.clippy]
pedantic = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
perf = { level = "deny", priority = 1 }
redundant_clone = { level = "deny", priority = 2 }

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