github totoshko88/RustConn v0.7.8

latest releases: v0.10.8, v0.10.7, v0.10.6...
one month ago

What's Changed

Added

  • Remmina Password Import — Importing from Remmina now automatically transfers saved passwords into the configured secret backend (libsecret, KeePassXC, etc.); connections are marked with PasswordSource::Keyring so credentials resolve seamlessly on first connect

Fixed

  • Import Error Swallowing — Replaced 14 .unwrap_or_default() calls in import dialog with proper error propagation; import failures now display user-friendly messages instead of silently returning empty results
  • MobaXterm Import Double Allocation — Removed unnecessary .clone() on byte buffer during UTF-8 conversion; recovers original bytes from error on fallback path instead of cloning upfront

Improved

  • Import File Size Guard — Added 50 MB file size limit check in read_import_file() to prevent OOM on accidentally selected large files
  • Native Export Streaming I/ONativeExport::to_file() now uses BufWriter with serde_json::to_writer_pretty() instead of serializing entire JSON to String first; eliminates intermediate allocation
  • Native Import Streaming I/ONativeExport::from_file() now uses BufReader with serde_json::from_reader() instead of reading entire file to String; reduces peak memory by ~50%
  • Native Import Version Pre-Check — Version validation now runs before full deserialization; rejects unsupported format versions without parsing all connections and groups
  • Export File Writing — Added centralized write_export_file() helper with BufWriter for consistent buffered writes across all exporters

Refactored

  • Export Write Consolidation — Replaced duplicated fs::write + error mapping boilerplate in SSH config, Ansible, Remmina, Asbru, Royal TS, and MobaXterm exporters with shared write_export_file() helper
  • TOCTOU Elimination — Removed redundant path.exists() checks before file reads in importers; the subsequent read_import_file() already returns ImportError on failure
  • Unused Imports Cleanup — Removed unused ExportError import from Asbru exporter and moved std::fs import to #[cfg(test)] in MobaXterm exporter

Dependencies

  • Updated memchr 2.7.6 → 2.8.0
  • Updated ryu 1.0.22 → 1.0.23
  • Updated zerocopy 0.8.38 → 0.8.39
  • Updated zmij 1.0.19 → 1.0.20

Installation

Debian/Ubuntu

sudo dpkg -i rustconn_0.7.8_amd64.deb
sudo apt-get install -f  # Install dependencies if needed

Fedora

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

AppImage

chmod +x RustConn-0.7.8-x86_64.AppImage
./RustConn-0.7.8-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.