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::Keyringso 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/O —
NativeExport::to_file()now usesBufWriterwithserde_json::to_writer_pretty()instead of serializing entire JSON toStringfirst; eliminates intermediate allocation - Native Import Streaming I/O —
NativeExport::from_file()now usesBufReaderwithserde_json::from_reader()instead of reading entire file toString; 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 withBufWriterfor 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 sharedwrite_export_file()helper - TOCTOU Elimination — Removed redundant
path.exists()checks before file reads in importers; the subsequentread_import_file()already returnsImportErroron failure - Unused Imports Cleanup — Removed unused
ExportErrorimport from Asbru exporter and movedstd::fsimport to#[cfg(test)]in MobaXterm exporter
Dependencies
- Updated
memchr2.7.6 → 2.8.0 - Updated
ryu1.0.22 → 1.0.23 - Updated
zerocopy0.8.38 → 0.8.39 - Updated
zmij1.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 neededFedora
sudo dnf install rustconn-0.7.8-1.fc41.x86_64.rpmAppImage
chmod +x RustConn-0.7.8-x86_64.AppImage
./RustConn-0.7.8-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