# WTFnet Roadmap and Status This document tracks the planned roadmap alongside the current implementation status. ## Roadmap (from docs/requirement_docs.md) ### v0.1 (MVP) - sys: ifaces/ip/route/dns - ports: listen/who - probe: ping + tcping - calc: subnet/contains/overlap - basic logging + --json everywhere ### v0.2 (current requirements) - dns: query + detect + watch (best-effort) - geoip: local Country+ASN mmdb integration - http: head/get (HTTP/2 required; HTTP/3 best-effort optional) - tls: handshake/verify/cert/alpn - neigh: ARP/NDP snapshot - discover: mdns + ssdp (bounded) - diag: bundle export (zip) ### v0.3 (future upgrades) - richer trace output (reverse lookup, per-hop loss, per-hop stats) - HTTP timing accuracy (connect/tls) - TLS extras: OCSP stapling indicator, richer cert parsing - ports conns improvements (top talkers / summary) - better baseline/diff for system roots - optional HTTP/3 (feature-gated) - optional LLMNR/NBNS discovery ## Current stage ### Implemented - Workspace and core crate scaffold. - Core data model: command envelope, meta, warnings/errors. - Exit code mapping. - Logging initialization with text/json formats and optional file output. - CLI crate scaffold with global flags and logging config wiring (placeholder `sys ifaces`). - Config/env parsing helpers in core (config file + env overrides). - Platform trait crate and OS-specific stub crates for Windows/Linux. - `sys ifaces` implemented in Windows/Linux providers (via `network-interface`) and wired to CLI. - CLI support for `sys ip` and `sys route` (platform routes still OS-specific work). - Platform `sys route` implementations (Linux via `/proc/net`, Windows via `route print` parsing). - Platform `sys dns` implementations (Linux `/etc/resolv.conf`, Windows `ipconfig /all`) and CLI command. - Platform `ports listen/who` best-effort parsing (Linux `/proc/net`, Windows `netstat -ano`). - Platform `neigh list` best-effort parsing (Linux `/proc/net/arp`, Windows `arp -a`). - Platform `cert roots` implementation via native trust store parsing. - CLI commands for `ports listen/who`, `neigh list`, and `cert roots`. - Process name/path enrichment for `ports listen/who` (Linux procfs, Windows tasklist/wmic). - `wtfnet-geoip` crate with local mmdb lookup and CLI commands (`geoip`, `geoip status`). - `wtfnet-probe` crate with ping/tcping and best-effort TCP trace, plus CLI commands. - ICMP/UDP traceroute support (IPv4) via pnet. - Probe outputs now include GeoIP by default with `--no-geoip` disable flags. - UDP traceroute now supports IPv6 on Unix and includes per-hop RTT. - `wtfnet-dns` crate with query/detect support wired to CLI. - DNS query/detect output includes GeoIP enrichment for server and answer IPs. - DNS query/detect supports DoT and DoH transports. - DNS query/detect supports SOCKS5 proxying for DoH/DoT. - DNS watch (passive, best-effort) implemented. - Calc subcrate with subnet/contains/overlap/summarize wired to CLI. - CMake/Makefile build, install, and package targets for release packaging. - HTTP crate with head/get support, timing breakdown, optional GeoIP, and SOCKS5 proxy. - TLS crate with handshake/verify/cert/alpn support in CLI (SOCKS5 proxy supported). - TCP ping supports SOCKS5 proxy. - Discover crate with mdns/ssdp commands. - Diag crate with report and bundle export. - Basic unit tests for calc and TLS parsing. ### In progress - v0.3: probe trace upgrades (per-hop stats + rdns). ### Next - Complete v0.3 trace upgrades and update CLI output. - Add v0.2 tests (dns detect, basic http/tls smoke).