Releases: cachebag/nmrs
Release nmrs 2.0.0 - 'Sleep is the Cousin of Death'
nmrs 2.0.0
Welcome to the 'Sleep is the Cousin of Death' release.
This marks a point of the project that's considerably more stable than 1.0.0, due to my mishaps around the extensibility of the public API's structs/enums.
Some things worth noting explicitly include the ability to develop nmrs on macOS or Windows via the Docker image provided, and extensive refactors made to make the code a bit more digestible and more importantly, maintainable in the future. And of course, Bluetooth support which is really nothing but a kick-starter to introduce more devices without breaking the API (thanks to those refactors).
Now, more than ever, I am happy to accept contributions to this project as my personal life is going to take priority for the following year as I get married and begin looking for a job before I graduate in the Fall.
I'll of course chip away at this whenever I get the time as it is my personal labor of love, but I can't promise that development from me be as continuous as it has been in the last few months.
Added
- Configurable timeout values for connection and disconnection operations (#185)
- Builder pattern for VpnCredentials and EapOptions (#188)
- Bluetooth device support (#198)
- Input validation before any D-Bus operations (#173)
CI: adjust workflow to auto-update nix hashes on PRs (#182)- More helpful methods to network_manager facade (#190)
- Explicitly clean up signal streams to ensure unsubscription (#197)
Fixed
Changed
- Various enums and structs marked non-exhaustive (#198)
- Expose NMWiredProxy and propogate speed through + write in field and display for BT device type (#198)
- refactor: device type registry system for future extensibility summary by @cachebag in #172
Full Changelog(1.0.0 to 2.0.0): nmrs-v1.0.0...nmrs-v2.0.0
Release nmrs 1.3.5 - 'Size Doesn't Matter'
nmrs 1.3.5
Welcome to the 'Size Doesn't Matter' release.
Changed
Full Changelog: nmrs-v1.3.0...nmrs-v1.3.5
Release nmrs-v1.3.0 - 'Throat Punch'
nmrs 1.3.0
Welcome to the 'Throat Punch' release.
Changed
- refactor: dedupe DBus proxy construction by @cachebag in #165
- Better error context and debugging by @cachebag in #168
Full Changelog: gui-v1.1.0...nmrs-v1.3.0
Release nmrs-v1.2.0 - 'Day by day'
Welcome to the 'Day by day' release.
Fixed
- perf: borrowed slice adjusted for empty ssid check by @cachebag in #154
- fix: change
Dockerfileto only configurenmrsby @cachebag in #162
Changed
- refactor: condense device finding logic under one helper by @cachebag in #158
- refactor(nmrs): unify connection builder pattern by @cachebag in #161
Added
- feat: docker image for reproducing testing/dev environment by @cachebag in #159
- CI: SemVer checks by @cachebag in #163
Full Changelog: gui-v1.1.0...nmrs-v1.2.0
Release nmrs-v1.1.0 - 'Bazinga'
nmrs-gui-v1.1.0 -
Not the cleanest release. 1.1.0 includes the following:
- Full support for Ethernet devices.
- Device state monitoring via subscriptions to signals on D-Bus.
- Other bug fixes regarding connecting/disconnecting networks, forgetting networks, etc.
Release nmrs-gui-v0.5.0-beta - 'these things happen'
Welcome to the 'these things happen' release.
- 2025-12-15
Changed
- Core: Refactored connection monitoring from polling to event-driven D-Bus signals for faster response times and lower CPU usage (#46)
- Core: Replaced
tokiowithfutures-timerfor runtime-agnostic async support (fixes GTK/glib compatibility)
Added
- Core:
ActiveConnectionStateandConnectionStateReasonenums for detailed connection status tracking (#46) - Core:
monitor_network_changes()API for real-time network list updates via D-Bus signals - Core:
NetworkManageris nowClone - Core+GUI: Full support for Ethernet devices (#88)
Fixed
- Core:
forget()now verifies device is disconnected before deleting saved connections (#124) - Core:
list_networks()preserves security flags when deduplicating APs (#123) - Core: Fixed race condition in signal subscription where rapid state changes could be missed
- GUI: Fixed UI freeze when connecting/forgetting networks
- GUI: Supply option to provide cert paths for WPA-EAP connections #56
Release nmrs-v1.0.0 - 'The time will pass anyway'
Release 1.0.0-stable
Welcome to the 'the time will pass anyway' release (nmrs is stable!).
This release marks the library API as stable. Breaking changes will only occur in major version updates (2.0.0+). All public APIs are documented and tested.
- 2025-12-15
- Core: Full WireGuard VPN support (#92)
Release v0.4.0-beta - 'Rip it'
Release 0.4.0-beta
Welcome to the 'Rip it' release.
Should be noted that I am now re-positioning nmrs to mainly be a library for Rust bindings of NetworkManager. GUI comes second.
Breaking Changes
- nmrs: Expanded
ConnectionErrorenum with new variants (AuthFailed,SupplicantConfigFailed,SupplicantTimeout,DhcpFailed,Timeout,Stuck,NoWifiDevice,WifiNotReady,NoSavedConnection,Failed(StateReason)) - exhaustive matches will need a wildcard (#82) - nmrs: Return types changed from
zbus::Result<T>toResult<T, ConnectionError>for structured error handling - nmrs: Renamed crate from
nmrs-coretonmrs - nmrs-gui: Renamed crate from
nmrs-uitonmrs-gui
Added
- Core:
StateReasonenum andreason_to_error()for mapping NetworkManager failure codes to typed errors (#82, #85) - Core: Comprehensive documentation across all modules (#82)
- Core: Logging support via
logcrate facade (#87) - UI: Pre-defined themes (Catppuccin, Dracula, Gruvbox, Nord, Tokyo) (#106)
- CLI:
--versionflag with build hash extraction (#108)
Changed
- Core: Decomposed
connect()into smaller helper functions (#81) - Core: Extracted disconnect + wait logic to unified helper (#79)
- Core: Unified state polling logic (#80)
- Core: Eliminated network lookup duplication via shared helper function (#83)
- Core: Replaced
eprintln!with structured logging (debug!,info!,warn!,error!) (#87)