better_internet_connectivity_checker
Pure-Dart internet connectivity checker. Distinguishes "interface up" from "can reach the public internet". Pluggable probes, policies, and triggers.
What this package is like to depend on
Last release 2 days ago
21 Aug 2026
Too new to tell
only 2 release windows
Nearly every release is documented
notes for 5 of 5 stable releases
Nothing withdrawn
no release was ever pulled
3 months old
5 releases · first in 2026
5 releases in the last 12 months
see the full history below
Release timeline
5 releases · May 2026 to Aug 2026Releases
latest 5-
1.1.021 Aug 2026Release notes
Open source →Changed
- [#31] Add MinimumReachablePolicy and stop probes following redirects
- [#34] Spread the default probe targets across three operators
Fixed
- [#30] Bound every probe at ProbeTarget.timeout, whatever the transport does
-
1.0.020 Aug 2026Release notes
Open source →Added
- [#4] Benchmarking framework + snapshotting library performance
- [#5] sealed
ConnectivityEventhierarchy + publicStream<ConnectivityEvent>onInternetConnection.eventsfor reactive lifecycle observation - [#5]
attachObserver(events, observer)top-level helper to wireConnectivityObserveronto the events stream - Add a debug-mode watchdog that warns when an observer callback blocks the event loop
- [#24] Add a CheckSchedule seam with exponential backoff (Breaking: adds NextCheckScheduledEvent)
- [#25] Add jitter to ExponentialBackoffSchedule, on by default at ±25 %
Changed
- [#26] Use new linter mega repo
- Bumped up Dart SDK floor to ^3.12.0
- [#0] Bumped SDK to ^3.13
- [#26] Move existing classes to header-form primary constructors
Fixed
- post merge fix
- Fix some performance regressions caused by the refactor
Removed
- [#5] Breaking:
observer:constructor parameter onInternetConnection— migrate viaattachObserver(connection.events, observer)
-
0.2.020 May 2026Release notes
Open source →Added
- Better CICD
setSlowThresholdto mutate slow-classification cutoff at runtime- [#1] Add a new logging module in the form of an
ConnectivityObserver
Changed
setCheckIntervalandsetSlowThresholdrenamed to setters ->checkIntervalandslowThreshold
-
0.1.018 May 2026Release notes
Open source →Added
HttpProbe.get()issues GET against endpoints that reject HEAD (HTTP 405) or misbehave under it. The response body is drained but not buffered, so per-call memory cost matchesHttpProbe.head().- HttpProbe.get for HTTP GET
Changed
- Breaking: unified the built-in HTTP probe into a single
HttpProbeclass withHttpProbe.head()/HttpProbe.get()named constructors. ReplacesHttpHeadProbe; existing callers update viaHttpHeadProbe()→HttpProbe.head(). - HttpProbe is split into .head(original) and .get
-
0.0.117 May 2026Release notes
Open source →Added
- InternetConnection scheduler with checkOnce() and a de-duped broadcast onStatusChange stream; sealed InternetStatus (Reachable with response time + ConnectionQuality, Unreachable with failed-probe diagnostics); slow-connection detection opt-in via slowThreshold.
- Pluggable ConnectivityProbe interface with default HttpHeadProbe (HTTP HEAD, shared http.Client, per-target timeout); DNS / TCP / retry-decorator / mock transports drop in via constructor injection.
- Pluggable ReachabilityPolicy interface with AnyReachablePolicy (default, any-of-N race) and AllReachablePolicy (strict, all-of-N); per-policy slow classification — winning probe under any-of-N, the slowest successful probe under all-of-N.
- Sibling-probe cancellation via http.AbortableRequest: under any-of-N, in-flight probes abort at the transport layer the moment one succeeds, releasing sockets immediately instead of waiting out the per-target timeout.
- an
externalRecheckTriggerconstructor hook forces an immediate recheck on any Stream<void> event (e.g. connectivity_plus.onConnectivityChanged.map(noopWithVal) on Flutter) without the package itself depending on Flutter.