32 lines
1.6 KiB
Markdown
32 lines
1.6 KiB
Markdown
# 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.
|
|
- DNS leak detection: new passive monitor with policy and privacy modes (best-effort).
|
|
- 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 plus LLMNR/NBNS (best-effort).
|
|
- 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_ms` are captured; `connect_ms`/`tls_ms` are measured via a separate probe and can be `null` with warnings.
|
|
- DNS watch uses `pnet` and is feature-gated as best-effort.
|
|
|
|
## Gaps vs design (as of now)
|
|
- HTTP/3 is feature-gated and best-effort; not enabled in default builds.
|
|
- TLS verification is rustls-based (no OS-native verifier).
|
|
- DNS leak DoH detection is heuristic and currently optional.
|
|
|
|
## Current stage summary
|
|
- v0.1 scope is complete.
|
|
- v0.2 scope mostly complete; remaining are deeper test coverage and optional enhancements.
|