82 lines
3.9 KiB
Markdown
82 lines
3.9 KiB
Markdown
# 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 LLMNR/NBNS discovery
|
|
- optional HTTP/3 (feature-gated; experimental, incomplete)
|
|
|
|
## 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.
|
|
- v0.3: probe trace per-hop stats + rdns support.
|
|
- v0.3: http connect/tls timing best-effort with warnings.
|
|
- v0.3: ports conns (active TCP connections + summaries).
|
|
- v0.3: TLS extras (OCSP flag + richer cert parsing).
|
|
- v0.3: cert baseline/diff improvements.
|
|
- v0.3: HTTP/3 request path (feature-gated; experimental, incomplete).
|
|
- 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: optional HTTP/3 (feature-gated; keep disabled until stabilized).
|
|
|
|
### Next
|
|
- Complete v0.3 trace upgrades and update CLI output.
|
|
- Add v0.2 tests (dns detect, basic http/tls smoke).
|