network_reachability 0.1.0
network_reachability: ^0.1.0 copied to clipboard
An advanced network monitoring and resilience library for Flutter, powered by a high-performance Rust core.
0.1.0 #
-
feat(config): Introduce
ConfigPresetfor specialized application workloads- Added multi-use configuration presets in Rust:
Gaming(ultra-low latency & high jitter sensitivity),Streaming(high-throughput consensus & buffer friendly),VoIP(voice/video call jitter & loss sensitive),IoT(battery-saving long interval),Enterprise(consensus & circuit breaker protected), andDefault. - Added
NetworkConfiguration::from_preset/NetworkConfiguration.fromPresetconstructor exposed through FFI.
- Added multi-use configuration presets in Rust:
-
feat(api): Add Observer Pattern methods and shared state accessors
- Introduced
listenandlistenGuardmethods to allow API layers and reactive widgets to observe network changes without manual polling. - Added synchronous shared state accessors on
NetworkReachability:lastReport,lastStatus,isConnected, andcurrentQuality. - Updated
guardmethod to leverage cached shared state by default and prevent redundant FFI invocations on high-frequency API calls.
- Introduced
-
feat(web): Built-in Web / WASM initialization support
- Added automatic WebAssembly asset loading via
loadExternalLibraryinNetworkReachability.init()for web platform. - Compiled and packaged release WASM binaries under
web/pkg/.
- Added automatic WebAssembly asset loading via
-
feat(example): Interactive preset switcher and observer demo
- Added UI ChoiceChips to switch between all presets (
Default,Gaming,Streaming,VoIP,IoT,Enterprise) in real-time. - Added Observer Pattern and shared state guard demo actions.
- Updated example dashboard header to
CORE ENGINE v0.1.0.
- Added UI ChoiceChips to switch between all presets (
-
deps: Update
flutter_rust_bridgeto2.13.0- Updated
flutter_rust_bridgedependencies across Dart (pubspec.yaml) and Rust (Cargo.toml). - Improved WebAssembly bridge compatibility and JS-interop binding efficiency.
- Updated
-
perf(core): Optimization of memory allocations and background timers
- Pre-allocated constant
ConnectivityResultlists inConnectivityfacade to eliminate GC pressure. - Added stream pipeline caching to
Connectivity.onConnectivityChanged. - Implemented generation counters in
NetworkReachabilitybackground timer loop to prevent duplicate ghost timers on app pause/resume cycles. - Added
constconstructors to allNetworkReachabilityExceptionsubclasses. - Fixed relative export paths across domain entities.
- Pre-allocated constant
0.0.1+4 #
-
deps: Update
flutter_rust_bridgeto2.12.0,plugin_platform_interfaceto2.1.8, and various other Flutter and Rust transitive dependencies (e.g.,hyper,tokio,wasm-bindgenrelated,icurelated). -
example: Update internal version string in the example app and enhance the main scroll view with a
PageController. -
build: Regenerate Flutter/Rust bridge code with
flutter_rust_bridge 2.12.0, introducing performance optimizations (e.g.,Vec::with_capacity) and updated lint suppressions. -
refactor(code): Enforce linter rules and ensure proper async disposal Introduce several new linter rules to
analysis_options.yamlincludingpublic_member_api_docs,prefer_final_parameters, andunnecessary_await_in_return. Apply these rules across the codebase, updating parameters withfinaland removing redundantawaitkeywords. Additionally, ensureNetworkReachability.dispose()is properly awaited for robust asynchronous cleanup.
0.0.1+3 #
-
deps: Update Flutter and Rust dependencies
-
Flutter Dependencies (
example/pubspec.lock):
matcher: Updated from0.12.18to0.12.19.- A local path dependency: Updated from
0.0.1+1to0.0.1+2. test_api: Updated from0.7.9to0.7.10. These updates primarily involve minor version bumps for testing utilities and a project-specific local package.
-
Rust Dependencies (
rust/Cargo.lock): -
Networking & System Interaction:
socket2: Updated from0.6.2to0.6.3. This foundational networking crate's update impacts various downstream dependencies.tokio: Updated from1.49.0to1.50.0, along withtokio-macrosfrom2.6.0to2.6.1. These updates bring the latest improvements and fixes to the asynchronous runtime.windows-sys: The underlyingwindows-sysdependency version utilized by several crates (e.g.,socket2,quinn-udp,tokio) has been bumped from0.60.2to0.61.2, incorporating updates to Windows API bindings.schannel: Updated from0.1.28to0.1.29, potentially for Windows security channel improvements.
-
Cryptographic & Security Libraries:
aws-lc-rs: Updated from1.16.0to1.16.2.aws-lc-sys: Updated from0.37.1to0.39.0. These updates likely include security patches, bug fixes, and performance enhancements for AWS Libcrypto (a fork of BoringSSL) bindings.rustls: Updated from0.23.36to0.23.37.rustls-webpki: Updated from0.103.9to0.103.10. These are minor updates for the Rustls TLS library and its Web PKI component, bringing stability and potential security improvements.
-
FFI (Foreign Function Interface) & WebAssembly:
jni: Thejnicrate updated its directjni-sysdependency to0.3.1, which transitively introducedjni-sys 0.4.1andjni-sys-macros 0.4.1. This indicates improvements or fixes related to Java Native Interface interactions.wasm-bindgenfamily: This includeswasm-bindgen,wasm-bindgen-futures,wasm-bindgen-macro,wasm-bindgen-macro-support,wasm-bindgen-shared, andweb-sys. All received significant minor version bumps (e.g.,wasm-bindgenfrom0.2.108to0.2.114,web-sysfrom0.3.85to0.3.91). These updates likely bring new features, bug fixes, and improved compatibility for WebAssembly integration.
-
General Utilities & Core Libraries:
anyhow:1.0.101to1.0.102(error handling).bumpalo:3.20.1to3.20.2(arena allocation).cc:1.2.56to1.2.57(C/C++ compiler tools).chrono:0.4.43to0.4.44(date and time utilities).ipnet:2.11.0to2.12.0(IP network utilities).iri-string:0.7.10to0.7.11(IRI parsing).itoa:1.0.17to1.0.18(integer to string conversion).js-sys:0.3.85to0.3.91(JavaScript FFI).libc:0.2.182to0.2.183(C standard library bindings).once_cell:1.21.3to1.21.4(single assignment cells).pin-project-lite:0.2.16to0.2.17(pin projection utility).quinn-proto:0.11.13to0.11.14(QUIC protocol implementation).quote:1.0.44to1.0.45(procedural macro utility).regex-syntax:0.8.9to0.8.10(regex parsing).syn:2.0.116to2.0.117(Rust syntax tree parsing).tinyvec:1.10.0to1.11.0(small, inlineable vectors).zerocopy&zerocopy-derive: Both updated from0.8.39to0.8.47(safe zero-copy operations).
Overall, this update ensures the project leverages the latest stable versions of its dependencies, incorporating a wide array of improvements across various functional areas without introducing known breaking changes.
0.0.1+2 #
-
Structural Overhaul (Clean Architecture).
-
Refactor(Core): Complete transition to Clean Architecture. The library is now strictly layered into Data, Domain, and Application layers.
-
Decoupling: Isolated the Rust FFI (Native Bridge) from the Dart logic. This allows for better testability and easier implementation of future platform-specific probes.
0.0.1+1 #
-
feat(packaging): Add ios and macOS support to support the Swift Package Manager.
-
feat(web): Add platform-agnostic network probes and adaptive background checks Refactor core network probe logic by introducing platform-specific implementations for WebAssembly (WASM). Implement
NetworkProbetrait to enable platform-agnostic checks. Introduce adaptive interval for background network checks, dynamically adjusting frequency based on connection quality. AddNetworkTimeoutExceptionfor clearer error handling. Expose new constructors for configuration models via FFI. Update dependencies and build profiles. -
perf(size): Significantly reduce lib network_reachability shared library size across all architectures - platforms: by ٍ 47.9%.
0.0.1 #
- Initial version.