What's Changed
Added
- Pre-connect Port Check - Fast TCP port reachability check before launching RDP/VNC/SPICE connections:
- Provides faster feedback (2-3s vs 30-60s timeout) when hosts are unreachable
- Configurable globally in Settings → Connection with timeout setting (default: 3s)
- Per-connection "Skip port check" option for special cases (firewalls, port knocking, VPN)
- New
ConnectionSettingsstruct inAppSettingsfor connection-related settings - New
skip_port_checkfield onConnectionmodel
- CLI Feature Parity - CLI now supports all major GUI features:
template list/show/create/delete/apply- Connection template managementcluster list/show/create/delete/add-connection/remove-connection- Cluster managementvar list/show/set/delete- Global variables managementduplicate- Duplicate existing connectionsstats- Show connection statistics (counts by protocol, groups, templates, clusters, snippets, variables, usage)
- GitHub CI RPM Build - Added Fedora RPM package build to release workflow:
- Builds in Fedora 41 container with Rust 1.87
- RPM package included in GitHub releases alongside .deb and AppImage
- Installation instructions for Fedora in release notes
- Added
load_variables()andsave_variables()methods toConfigManagerfor global variables persistence - Added
<icon>element to metainfo.xml for explicit AppStream icon declaration - Added
<developer_name>tag to metainfo.xml for backward compatibility with older AppStream parsers - Added
authorandlicensefields to AppImage packaging (AppImageBuilder.yml) - Added
debian.copyrightfile to OBS debian packaging
Changed
- Code Audit & Cleanup Release - comprehensive codebase audit and modernization
- Removed
check_structs.rsdevelopment artifact containing unsafe code (violatedunsafe_code = "forbid"policy) - Replaced
blocking_send()withtry_send()in VNC input handlers to prevent UI freezes - Replaced
unwrap()with safe alternatives insidebar.rsiterator access - Replaced
expect()with proper error handling invalidation.rsregex compilation - Replaced module-level
#![allow(clippy::unwrap_used)]with targeted function-level annotations inembedded_rdp_thread.rs - Improved
app.rsinitialization to return proper error instead of panicking - Updated
Cargo.tomllicense from MIT to GPL-3.0-or-later (matches actual LICENSE file) - Updated
Cargo.tomlauthors to "Anton Isaiev totoshko88@gmail.com"
Fixed
- Fixed
remote-viewerversion detection for localized output (e.g., Ukrainian "версія" instead of "version") - Fixed Asbru-CM import skipping RDP/VNC connections with client info (e.g., "rdp (rdesktop)", "rdp (xfreerdp)", "vnc (vncviewer)")
- VNC keyboard/mouse input no longer blocks GTK main thread on channel send
- Sidebar protocol filter no longer panics on empty filter set
- Regex validation errors now return
Resultinstead of panicking - FreeRDP thread mutex operations now have documented safety invariants
- Package metadata now correctly shows author and license in all package formats
Dependencies
- Updated
base64ct1.8.2 → 1.8.3 - Updated
cc1.2.51 → 1.2.52 - Updated
data-encoding2.9.0 → 2.10.0 - Updated
find-msvc-tools0.1.6 → 0.1.7 - Updated
flate21.1.5 → 1.1.8 - Updated
getrandom0.2.16 → 0.2.17 - Updated
libc0.2.179 → 0.2.180 - Updated
toml0.9.10 → 0.9.11 - Updated
zbus5.12.0 → 5.13.1 - Updated
zbus_macros5.12.0 → 5.13.1 - Updated
zbus_names4.2.0 → 4.3.1 - Updated
zmij1.0.12 → 1.0.13 - Updated
zvariant5.8.0 → 5.9.1 - Updated
zvariant_derive5.8.0 → 5.9.1 - Updated
zvariant_utils3.2.1 → 3.3.0 - Removed unused
cfg_aliases,nix,static_assertionsdependencies - Note:
sspiandpicky-krbkept at 0.16.0/0.11.0 due torand_coreversion conflict
Removed
rustconn-core/src/check_structs.rs- development artifact with unsafe code
Installation
Debian/Ubuntu
sudo dpkg -i rustconn_0.6.0_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora
sudo dnf install rustconn-0.6.0-1.fc41.x86_64.rpmAppImage
chmod +x RustConn-0.6.0-x86_64.AppImage
./RustConn-0.6.0-x86_64.AppImageopenSUSE (OBS)
Packages available at: https://build.opensuse.org/package/show/home:totoshko88:rustconn/rustconn
# Tumbleweed
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/openSUSE_Tumbleweed/ rustconn
sudo zypper ref
sudo zypper in rustconn
# Leap 16.0
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/16.0/ rustconn
sudo zypper ref
sudo zypper in rustconn