Skip to content

v0.2.0 — mDNS, typed errors, distribution story

Choose a tag to compare

@fstubner fstubner released this 18 Apr 15:50
· 273 commits to main since this release

v0.2.0

First major feature pass since v0.1.0. Adds a real mDNS capability, a properly typed public API, shell completions, man pages, and the distribution groundwork (Homebrew / Scoop / Winget / AUR) that lets people install without a Rust toolchain.

New capability: mDNS / DNS-SD discovery

netscli mdns                    # 3s browse over a curated service-type set
netscli mdns --timeout-ms 5000 --json | jq

Works from the CLI, the TUI (/mdns), and as an MCP tool (discover_mdns). Returns devices with their hostnames, resolved IPv4 + IPv6, ports, and full TXT record properties. Means an agent asking "is the kitchen Chromecast online?" can match by name and service type instead of guessing IPs.

Library hardening

  • netscli_core::Error + Result<T> — every public function returns a structured error instead of anyhow::Error. Pattern-match on InvalidInput / Dns / Network / Timeout / Unsupported / Io / Database / Pcap / Other. Marked #[non_exhaustive] so more variants can land without being breaking changes.
  • db feature on netscli-core — the SQLite Database type (and sqlx + chrono deps) is now opt-in. Default-feature consumers see ~35% fewer transitive crates.
  • mdns feature on netscli-core — gates the new discovery module; pure-Rust, no libpcap-style system dep.
  • cargo-audit CI with a documented .cargo/audit.toml ignore list per reachable advisory.

Distribution

  • Shell completions: netscli completions bash|zsh|fish|powershell|elvish → stdout.
  • Man page: netscli man → roff.
  • Sigstore signatures: every release asset ships with a .sig + .pem, verifiable with cosign verify-blob. No paid cert, no long-lived secrets.
  • Package manifests: packaging/ holds submission templates for Homebrew (tap), Scoop (bucket), Winget (microsoft/winget-pkgs via wingetcreate), and Arch AUR (netscli-bin). PRs to those registries will land after this release is up.

Install

# From crates.io (Rust toolchain required)
cargo install netscli

# Prebuilt binaries for every platform — attached below

Brew / Scoop / Winget / AUR instructions coming in a follow-up once the submissions are accepted.

Full changelog

See CHANGELOG.md.