Changelog
See the full changelog on GitHub: nmrs CHANGELOG
nmrs (Library) Highlights
3.1.0
- Loopback device support and a new
DeviceType::Vlanvariant - VLAN (802.1Q) support:
VlanConfigmodel andbuild_vlan_connection RadioState::presentreports whether a radio actually exists on the hostairplane_mode_state()andset_airplane_mode()are now correct on Wi-Fi-only / Bluetooth-less hosts (BlueZ-missing is treated as a no-op)set_bluetooth_radio_enablednow waits for the adapterPoweredproperty to flip before returning
3.0.x
nmrs::agentmodule — register a NetworkManager secret agent (SecretAgent,SecretAgentBuilder,SecretRequest,SecretResponder, …) for Wi-Fi/VPN/802.1X credential prompts over D-Bus- Per-Wi-Fi-device scoping:
WifiDevice,list_wifi_devices(),wifi_device_by_interface(), andnm.wifi("wlan1")→WifiScope - New
interface: Option<&str>parameter onconnect,connect_to_bssid,disconnect,scan_networks, andlist_networks(3.0 break) set_wifi_enabled(interface, bool)now toggles a single radio;set_wireless_enabled(bool)is the global software killswitch- Airplane-mode surface:
RadioState,AirplaneModeState,wifi_state,wwan_state,bluetooth_radio_state, plus rfkill awareness - Connectivity surface:
connectivity(),check_connectivity(),connectivity_report(),captive_portal_url(),ConnectivityCheckDisabled - Generic VPN model:
VpnTypeis now data-carrying (WireGuard, OpenVPN, OpenConnect, strongSwan, PPTP, L2TP, Generic).VpnKinddistinguishes plugin VPNs from kernel WireGuard.VpnConnectiongaineduuid,active,user_name,password_flags,service_type. Newconnect_vpn_by_uuid,connect_vpn_by_id,disconnect_vpn_by_uuid,active_vpn_connections. - OpenVPN end-to-end: full
OpenVpnConfigwith TLS hardening, ciphers, proxy, routes,redirect_gateway;OpenVpnBuilder;.ovpnimport vianm.import_ovpn(path, user, pass); cert-store handling for inline certs. - Saved profile management:
list_saved_connections{,_brief,_ids},get_saved_connection{,_raw},delete_saved_connection,update_saved_connection,reload_saved_connections,SavedConnection,SavedConnectionBrief,SettingsSummary,SettingsPatch. AccessPointmodel +list_access_points(interface)for per-BSSID enumeration.ConnectionError::IncompleteBuilderfor builders missing required fields;Builder::build()returnsResultinstead of panicking.- Edition 2024, MSRV bumped to 1.90.0 (3.0.1).
2.x
- Concurrency protection (
is_connecting()),WirelessHardwareEnabled, BDADDR → BlueZ path resolution, mixed-mode WPA1+WPA2 (2.2.0) #[must_use]annotations on public builder APIs (2.1.0)- IPv6 address support,
WifiModebuilder, input validation for SSIDs/ credentials/addresses, idempotentforget_vpn()(2.0.1) - Bluetooth support (PAN and DUN), configurable
TimeoutConfig,VpnCredentials/EapOptionsbuilder patterns,ConnectionOptions,ConnectionBuilder,WireGuardBuilderwith validation (2.0.0)
1.x
- WireGuard VPN support
- VPN error handling improvements
- Docker image for testing
- Initial release with Wi-Fi and Ethernet support