github totoshko88/RustConn v0.6.0

latest releases: v0.10.8, v0.10.7, v0.10.6...
3 months ago

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 ConnectionSettings struct in AppSettings for connection-related settings
    • New skip_port_check field on Connection model
  • CLI Feature Parity - CLI now supports all major GUI features:
    • template list/show/create/delete/apply - Connection template management
    • cluster list/show/create/delete/add-connection/remove-connection - Cluster management
    • var list/show/set/delete - Global variables management
    • duplicate - Duplicate existing connections
    • stats - 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() and save_variables() methods to ConfigManager for 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 author and license fields to AppImage packaging (AppImageBuilder.yml)
  • Added debian.copyright file to OBS debian packaging

Changed

  • Code Audit & Cleanup Release - comprehensive codebase audit and modernization
  • Removed check_structs.rs development artifact containing unsafe code (violated unsafe_code = "forbid" policy)
  • Replaced blocking_send() with try_send() in VNC input handlers to prevent UI freezes
  • Replaced unwrap() with safe alternatives in sidebar.rs iterator access
  • Replaced expect() with proper error handling in validation.rs regex compilation
  • Replaced module-level #![allow(clippy::unwrap_used)] with targeted function-level annotations in embedded_rdp_thread.rs
  • Improved app.rs initialization to return proper error instead of panicking
  • Updated Cargo.toml license from MIT to GPL-3.0-or-later (matches actual LICENSE file)
  • Updated Cargo.toml authors to "Anton Isaiev totoshko88@gmail.com"

Fixed

  • Fixed remote-viewer version 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 Result instead 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 base64ct 1.8.2 → 1.8.3
  • Updated cc 1.2.51 → 1.2.52
  • Updated data-encoding 2.9.0 → 2.10.0
  • Updated find-msvc-tools 0.1.6 → 0.1.7
  • Updated flate2 1.1.5 → 1.1.8
  • Updated getrandom 0.2.16 → 0.2.17
  • Updated libc 0.2.179 → 0.2.180
  • Updated toml 0.9.10 → 0.9.11
  • Updated zbus 5.12.0 → 5.13.1
  • Updated zbus_macros 5.12.0 → 5.13.1
  • Updated zbus_names 4.2.0 → 4.3.1
  • Updated zmij 1.0.12 → 1.0.13
  • Updated zvariant 5.8.0 → 5.9.1
  • Updated zvariant_derive 5.8.0 → 5.9.1
  • Updated zvariant_utils 3.2.1 → 3.3.0
  • Removed unused cfg_aliases, nix, static_assertions dependencies
  • Note: sspi and picky-krb kept at 0.16.0/0.11.0 due to rand_core version 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 needed

Fedora

sudo dnf install rustconn-0.6.0-1.fc41.x86_64.rpm

AppImage

chmod +x RustConn-0.6.0-x86_64.AppImage
./RustConn-0.6.0-x86_64.AppImage

openSUSE (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

Don't miss a new RustConn release

NewReleases is sending notifications on new releases.