[package]
edition = "2024"
rust-version = "1.90"
name = "concord"
version = "2.5.0"
build = false
exclude = [
"docs/",
".github/",
"dist-workspace.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A terminal user interface client for Discord"
homepage = "https://github.com/chojs23/concord"
readme = "README.md"
keywords = [
"discord",
"tui",
"terminal",
"ratatui",
"client",
]
categories = ["command-line-utilities"]
license = "GPL-3.0-only"
repository = "https://github.com/chojs23/concord"
[features]
default = [
"voice-playback",
"stream-broadcast",
]
stream-broadcast = [
"voice-playback",
"dep:openh264",
"dep:fast_image_resize",
"dep:yuv",
"dep:pipewire",
"dep:wasapi",
"dep:windows",
"dep:block2",
"dep:dispatch2",
"dep:objc2",
"dep:objc2-core-audio-types",
"dep:objc2-core-foundation",
"dep:objc2-core-media",
"dep:objc2-core-video",
"dep:objc2-foundation",
"dep:objc2-screen-capture-kit",
]
voice-playback = [
"dep:cpal",
"dep:alsa",
"dep:nnnoiseless",
"dep:global-hotkey",
"dep:ashpd",
"dep:windows-sys",
"dep:x11rb",
"dep:xkeysym",
]
[lib]
name = "concord"
path = "src/lib.rs"
[[bin]]
name = "concord"
path = "src/main.rs"
[dependencies.aes-gcm]
version = "0.10.3"
[dependencies.arboard]
version = "3.6.1"
features = ["wayland-data-control"]
[dependencies.base64]
version = "0.22"
[dependencies.chacha20poly1305]
version = "0.10.1"
[dependencies.chrono]
version = "0.4.44"
features = ["clock"]
default-features = false
[dependencies.cookie_store]
version = "0.22.1"
[dependencies.cpal]
version = "0.18.1"
features = ["pulseaudio"]
optional = true
[dependencies.crossterm]
version = "0.29.0"
features = [
"event-stream",
"osc52",
]
[dependencies.davey]
version = "0.1.4"
[dependencies.dirs]
version = "6.0.0"
[dependencies.emojis]
version = "0.8.2"
[dependencies.fast_image_resize]
version = "6.1.0"
features = ["only_u8x4"]
optional = true
[dependencies.futures]
version = "0.3.32"
[dependencies.global-hotkey]
version = "0.8.0"
optional = true
[dependencies.iana-time-zone]
version = "0.1.65"
[dependencies.image]
version = "0.25.10"
[dependencies.interprocess]
version = "2.4.2"
features = ["tokio"]
[dependencies.keyring]
version = "3.6.3"
features = [
"apple-native",
"async-secret-service",
"crypto-rust",
"tokio",
"windows-native",
]
default-features = false
[dependencies.mime_guess]
version = "2.0"
[dependencies.nnnoiseless]
version = "0.5.2"
optional = true
default-features = false
[dependencies.notify-rust]
version = "4"
[dependencies.openh264]
version = "0.9.7"
optional = true
[dependencies.opus]
version = "0.3.1"
[dependencies.qrcode]
version = "0.14"
default-features = false
[dependencies.rand]
version = "0.8"
[dependencies.ratatui]
version = "0.30.0"
[dependencies.ratatui-image]
version = "11.0.5"
features = [
"crossterm",
"image-defaults",
]
default-features = false
[dependencies.reqwest]
version = "0.12"
features = [
"rustls-tls-webpki-roots-no-provider",
"json",
"charset",
"http2",
"cookies",
"gzip",
"deflate",
"brotli",
"zstd",
"multipart",
]
default-features = false
[dependencies.reqwest_cookie_store]
version = "0.9.0"
[dependencies.rsa]
version = "0.9"
[dependencies.rustls]
version = "0.23.39"
features = [
"ring",
"std",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.syntect]
version = "5.3.0"
features = ["default-fancy"]
default-features = false
[dependencies.sys-locale]
version = "0.3.2"
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tokio]
version = "1.52.1"
features = [
"macros",
"rt-multi-thread",
"fs",
"process",
"signal",
"net",
"sync",
"time",
]
[dependencies.tokio-tungstenite]
version = "0.27"
features = [
"connect",
"handshake",
"rustls-tls-webpki-roots",
]
default-features = false
[dependencies.toml]
version = "1.1.2"
[dependencies.unicode-segmentation]
version = "1.12.0"
[dependencies.unicode-width]
version = "0.2.2"
[dependencies.uuid]
version = "1.23.1"
features = ["v4"]
[dependencies.yuv]
version = "0.8.16"
features = ["fast_mode"]
optional = true
[target.'cfg(target_os = "linux")'.dependencies.alsa]
version = "0.11"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.ashpd]
version = "0.13.13"
features = [
"tokio",
"global_shortcuts",
"screencast",
]
optional = true
default-features = false
[target.'cfg(target_os = "linux")'.dependencies.pipewire]
version = "0.10.0"
optional = true
[target.'cfg(target_os = "linux")'.dependencies.x11rb]
version = "0.13.2"
features = ["xinput"]
optional = true
[target.'cfg(target_os = "linux")'.dependencies.xkeysym]
version = "0.2.1"
optional = true
[target.'cfg(target_os = "macos")'.dependencies.block2]
version = "0.6.2"
features = ["std"]
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.dispatch2]
version = "0.3.1"
features = [
"std",
"objc2",
]
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2]
version = "0.6.4"
features = ["std"]
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-core-audio-types]
version = "0.3.2"
features = [
"std",
"CoreAudioBaseTypes",
]
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-core-foundation]
version = "0.3.2"
features = ["std"]
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-core-media]
version = "0.3.2"
features = [
"std",
"CMBlockBuffer",
"CMSampleBuffer",
"objc2",
"objc2-core-audio-types",
"objc2-core-video",
]
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-core-video]
version = "0.3.2"
features = [
"std",
"CVBase",
"CVBuffer",
"CVImageBuffer",
"CVPixelBuffer",
"CVReturn",
]
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-foundation]
version = "0.3.2"
features = [
"std",
"NSArray",
"NSError",
"NSString",
"NSObject",
]
optional = true
default-features = false
[target.'cfg(target_os = "macos")'.dependencies.objc2-screen-capture-kit]
version = "0.3.2"
features = [
"std",
"SCError",
"SCShareableContent",
"SCStream",
"block2",
"dispatch2",
"objc2-core-foundation",
"objc2-core-graphics",
"objc2-core-media",
]
optional = true
default-features = false
[target.'cfg(target_os = "windows")'.dependencies.wasapi]
version = "0.23.0"
optional = true
[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.62.2"
features = [
"Foundation",
"Graphics_Capture",
"Graphics_DirectX",
"Graphics_DirectX_Direct3D11",
"Win32_Foundation",
"Win32_Graphics_Direct3D",
"Win32_Graphics_Direct3D11",
"Win32_Graphics_Dwm",
"Win32_Graphics_Dxgi",
"Win32_Graphics_Dxgi_Common",
"Win32_Graphics_Gdi",
"Win32_System_WinRT_Direct3D11",
"Win32_System_WinRT_Graphics_Capture",
"Win32_UI_WindowsAndMessaging",
]
optional = true
[target.'cfg(target_os = "windows")'.dependencies.windows-sys]
version = "0.61.2"
features = [
"Win32_Foundation",
"Win32_System_LibraryLoader",
"Win32_System_Threading",
"Win32_UI_Input_KeyboardAndMouse",
"Win32_UI_WindowsAndMessaging",
]
optional = true
[profile.dist]
lto = true
codegen-units = 1
inherits = "release"
strip = true