Skip to content

Releases: cachebag/nmrs

Release nmrs 2.0.0 - 'Sleep is the Cousin of Death'

19 Jan 16:19

Choose a tag to compare

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

  • Better error message for empty passkeys (#198)
  • Race condition in signal subscription (#191)

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'

14 Jan 03:38

Choose a tag to compare

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'

12 Jan 22:20

Choose a tag to compare

nmrs 1.3.0

Welcome to the 'Throat Punch' release.

Changed

Full Changelog: gui-v1.1.0...nmrs-v1.3.0

Release nmrs-v1.2.0 - 'Day by day'

06 Jan 07:37

Choose a tag to compare

Welcome to the 'Day by day' release.

Fixed

  • perf: borrowed slice adjusted for empty ssid check by @cachebag in #154
  • fix: change Dockerfile to only configure nmrs by @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

Full Changelog: gui-v1.1.0...nmrs-v1.2.0

Release nmrs-v1.1.0 - 'Bazinga'

19 Dec 15:38

Choose a tag to compare

Welcome to the 'Bazinga' release

  • 2025-12-19

Fixed

  • Native WireGuard profile structure (#135)
  • Corrected binary name for .desktop file + postInstall hook for Nix flake (#146)

Added

  • Added WireGuard connection example to docs (#137)

nmrs-gui-v1.1.0 -

19 Dec 15:56

Choose a tag to compare

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'

15 Dec 16:47

Choose a tag to compare

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 tokio with futures-timer for runtime-agnostic async support (fixes GTK/glib compatibility)

Added

  • Core: ActiveConnectionState and ConnectionStateReason enums for detailed connection status tracking (#46)
  • Core: monitor_network_changes() API for real-time network list updates via D-Bus signals
  • Core: NetworkManager is now Clone
  • 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'

15 Dec 22:40

Choose a tag to compare

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'

12 Dec 18:46

Choose a tag to compare

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 ConnectionError enum 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> to Result<T, ConnectionError> for structured error handling
  • nmrs: Renamed crate from nmrs-core to nmrs
  • nmrs-gui: Renamed crate from nmrs-ui to nmrs-gui

Added

  • Core: StateReason enum and reason_to_error() for mapping NetworkManager failure codes to typed errors (#82, #85)
  • Core: Comprehensive documentation across all modules (#82)
  • Core: Logging support via log crate facade (#87)
  • UI: Pre-defined themes (Catppuccin, Dracula, Gruvbox, Nord, Tokyo) (#106)
  • CLI: --version flag 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)

Fixed

  • Core: Auth error mapping now properly distinguishes supplicant failures, DHCP errors, and timeouts (#82, #85, #116)
  • Core: bitrate property now fetches real connection speeds (#110)
  • UI: Re-aligned refresh button (#111)
  • UI: Show connection status when connecting with saved credentials (#61)

v0.3.0-beta - I ruin everything

08 Dec 04:08

Choose a tag to compare

Welcome to the 'I ruin everything' release.

Fixed

  • Fixed UI not freezing on connections (#101)
  • Fixed seperate ScrolledWindow for each stack child (#103)
  • Dropped deps that aren't needed for now (#104)

Added

  • Expose system default theme toggle (light/dark) (#102)
  • CI: Automated release workflow (#105)