via v0.2.0 — IPv6 Support & Comprehensive Test Suite
Highlights
- IPv6 traceroute with single-family auto-select and
-4/-6force flags - Cross-platform CI on Ubuntu, macOS, and Windows (Go 1.25.6)
- ~700 tests across unit, golden snapshot, teatest e2e, integration, mutation, and fuzz layers
- Per-package coverage floors enforced in CI
- Zero breaking changes from v0.1.0
New
- IPv6 traceroute —
vianow runs over IPv4 or IPv6. Auto-select prefers IPv6 when both target AAAA and local v6 transport are available.
via google.com # auto (prefers v6 if available)
via -4 google.com # force IPv4
via -6 google.com # force IPv6
When -6 is requested but the target has no AAAA (or the host has no v6 transport), via exits with a clear error rather than silently falling back.
- IP family config —
ip_family = "auto" | "4" | "6"in~/.config/via/config.toml; also available in the Settings menu (Esc → Probe Settings → IP family). - Dynamic v6 column width — the IP column widens automatically for v6 addresses in both the live TUI and report mode.
- v6 in every export format — JSON, CSV, and DOT all handle v6 addresses correctly (DOT node IDs sanitized to remain valid graphviz).
- v6 ASN enrichment — uses
origin6.asn.cymru.comfor AAAA hops.
Quality
- Cross-platform CI matrix on every push and PR
- Weekly fuzz workflow across every parser (
ParseInnerHeader,TCPChecksum,parseTCPResponse,parseOriginResponse,parseASNameResponse,config.Load) - 72% mutation kill rate baseline — the test suite catches deliberate code corruptions
- Opt-in
make soak-testfor real-network validation (never on CI)
Install
Homebrew
brew upgrade tonhe/tap/viaduct
From source
git clone https://github.com/tonhe/viaduct.git
cd viaduct
git checkout v0.2.0
make install
Linux users can avoid sudo by granting raw-socket capability once:
sudo setcap cap_net_raw+ep $(which via)
Changelog
- d09ad60 release: v0.2.0 — IPv6 support and cross-platform test suite