1.5 KiB
1.5 KiB
Implementation Status vs Design
This document tracks current implementation status against the original design in docs/implementation_notes.md.
Matches the design
- Workspace layout with feature crates (
wtfnet-core,wtfnet-platform,wtfnet-geoip,wtfnet-probe,wtfnet-dns,wtfnet-http,wtfnet-tls,wtfnet-discover,wtfnet-diag). - CLI remains a thin wrapper around library crates.
- Platform abstraction uses traits with OS dispatch.
- GeoIP: local GeoLite2 Country + ASN support.
- Probe: ping/tcping/trace with GeoIP enrichment.
- DNS: Hickory-based query/detect with best-effort heuristics.
- HTTP: head/get via reqwest with best-effort timing breakdown and optional HTTP/3 (feature-gated).
- TLS: rustls-based handshake/verify/cert/alpn.
- Discover: mDNS/SSDP bounded collection.
- Diag: bundle export in zip.
Deviations or refinements
- DNS adds DoT/DoH and SOCKS5 proxy support.
- HTTP/TLS/TCP ping include SOCKS5 proxy support.
- HTTP timing breakdown is best-effort:
dns_ms/ttfb_msare captured;connect_ms/tls_msare measured via a separate probe and can benullwith warnings. - DNS watch uses
pnetand is feature-gated as best-effort.
Gaps vs design (as of now)
- HTTP/3 is feature-gated and incomplete; not enabled in default builds.
- TLS verification is rustls-based (no OS-native verifier).
- Discover does not include LLMNR/NBNS.
Current stage summary
- v0.1 scope is complete.
- v0.2 scope mostly complete; remaining are deeper test coverage and optional enhancements.