zero_network_kit 1.0.0
zero_network_kit: ^1.0.0 copied to clipboard
Flutter plugin for network diagnostics: connectivity check, ping, DNS resolution, speed test, port scanning, quality scoring and micro-benchmarks on Android, iOS, macOS, Windows and Linux.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.0.0 #
Added #
- Connectivity —
NetworkDiagnostic.checkConnection()returns aNetworkConnectionInfosnapshot with transport type, IPv4/IPv6, gateway, Wi-Fi SSID, signal strength (dBm), MAC address and VPN detection.NetworkDiagnostic.onConnectivityChangedstreams a fresh snapshot on every change. - Ping —
NetworkDiagnostic.ping()measures latency with TCP handshake round trips on every platform, and can use the system ICMPpingcommand on desktop (PingMode.icmp).PingResultreports sent/received, packet loss, min/avg/max and jitter. - DNS —
NetworkDiagnostic.resolve()queriessystemplus any explicit resolvers over raw UDP, using the built-in DNS wire-format codec (DnsPacket), with concurrent or serialised execution and per-serverDnsTestResult. - Speed test —
NetworkDiagnostic.runSpeedTest()measures download and upload throughput plus latency/jitter/packet loss, with progress callbacks viaSpeedTestProgress. - Port check —
NetworkDiagnostic.checkPort()returns aPortCheckResult(useisPortOpen()for a plain boolean) andscanPorts()performs bounded-concurrency TCP reachability checks. - Quality score —
NetworkDiagnostic.evaluateQuality()andNetworkQualityEvaluatorproduce a 0–100 weighted score with aNetworkQualityLeveland actionable suggestions. - Full report —
NetworkDiagnostic.diagnose()aggregates every probe into aNetworkDiagnosticReport. - Benchmarks —
NetworkBenchmark.runAll()and friends measure the diagnostics API itself and returnBenchmarkSuiteResult. - Configuration —
NetworkDiagnosticConfigcentralises hosts, timeouts, payload sizes and quality targets;ZeroNetworkKit.init()applies it globally anddispose()releases the owned HTTP client. - Native channel —
getPlatformVersion()andgetNetworkDetails()implemented for Android (Kotlin) and iOS (Swift). - Desktop platforms — Windows, macOS and Linux are now supported
(
pubspec.yamldeclares them);getPlatformVersion()andgetNetworkDetails()are implemented for each. On desktop, SSID / signal strength arenull; Windows additionally exposes gateway / MAC / VPN via the native layer. - Capabilities —
NetworkDiagnostic.capabilitiesreturnsNetworkCapabilities, so callers can query-then-call and hide unsupported cards (e.g. SSID on desktop). - Advanced API — services,
ConnectivityAdapter,QualityEvaluatorand theDnsPacketcodec moved intopackage:zero_network_kit/advanced.dart; the root barrel stays small (models + facades + config).