[package]
name = "nd300"
version = "3.3.2"
edition = "2021"
authors = ["Emmett S <hey@emmetts.dev>"]
description = "Cross-platform network diagnostic tool"
readme = "README.md"
license = "PolyForm-Noncommercial-1.0.0"
repository = "https://github.com/QubeTX/qube-network-diagnostics"
keywords = ["cli", "network", "diagnostic", "cross-platform"]
categories = ["command-line-utilities"]
include = [
    "Cargo.toml",
    "Cargo.lock",
    "README.md",
    "LICENSE",
    "CHANGELOG.md",
    "build.rs",
    "man/**",
    "src/**",
    "wix-corporate/**",
    "inno/**",
]

[package.metadata.wix]
upgrade-guid = "7208E6EA-ABAE-4AF6-A69C-7C7E4DA3DDF5"
path-guid = "D131558E-5659-455C-A5C7-3E7943C3B005"
license = false
eula = false

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

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

[[bin]]
name = "speedqx"
path = "src/bin/speedqx.rs"

[dependencies]
clap = { version = "4.5", features = ["derive"] }
tokio = { version = "1", features = ["full"] }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
crossterm = "0.28"
thiserror = "2.0"
chrono = { version = "0.4", features = ["serde"] }
indicatif = "0.18"
owo-colors = "4"
sysinfo = "0.32"
default-net = "0.22"
tokio-tungstenite = { version = "0.24", features = ["rustls-tls-native-roots", "rustls-tls-webpki-roots"] }
futures-util = "0.3"
url = "2"

[target.'cfg(windows)'.dependencies]
wmi = "0.14"
winapi = { version = "0.3", features = ["consoleapi", "wincon", "iphlpapi", "tcpmib", "udpmib", "ifdef", "winsock2", "ws2def", "ws2tcpip", "netioapi", "iptypes"] }
ipconfig = "0.3"
# SHA-256 verification of MSI/EXE installers downloaded by `nd300 update`
# against their `.sha256` sidecar (refuse-on-mismatch).
sha2 = "0.10"
# HKCU\Software\ND300\InstallSource registry marker read by the updater to pick
# the matching installer (MSI/EXE × Global/Corporate) for in-place upgrades.
winreg = "0.52"

[target.'cfg(unix)'.dependencies]
nix = { version = "0.29", features = ["net", "socket"] }
libc = "0.2"

[build-dependencies]
clap = { version = "4.5", features = ["derive"] }
clap_mangen = "0.2"

[profile.dist]
inherits = "release"
lto = "thin"

# Config for 'dist'
[workspace.metadata.dist]
# The preferred dist version to use in CI (Cargo.toml SemVer syntax)
cargo-dist-version = "0.31.0"
# The release workflow is intentionally customized for main-branch deploys and crates.io.
# "msi" allows the customized wix/main.wxs (InstallSourceMarker component) to
# coexist with cargo-dist's generated MSI without dist complaining.
allow-dirty = ["ci", "msi"]
# CI backends to support
ci = "github"
# The installers to generate for each app
installers = ["shell", "powershell", "msi"]
# Target platforms to build apps for (Rust target-triple syntax)
targets = ["aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-pc-windows-msvc"]
# Which actions to run on pull requests
pr-run-mode = "plan"
# Whether to install an updater program
install-updater = false
# Path that installers should place binaries in
install-path = "CARGO_HOME"
# Whether to publish prereleases to package managers
publish-prereleases = false
