Skip to content

v0.24.5

Latest

Choose a tag to compare

@github-actions github-actions released this 02 Nov 21:23

What's Changed

Added

  • Bitwarden is much faster with an optional persistent CLI — the Bitwarden backend used to start a fresh bw process for every vault operation, and each one paid the Bitwarden CLI's Node.js startup cost (about 2.7 s on a typical machine), so a single credential lookup that runs several searches took on the order of 13 seconds. A new Keep the CLI running (faster) switch in Settings → Secrets → Bitwarden keeps one bw serve process running for the session instead: the unlocked vault stays in its memory and answers each operation over a local loopback socket, which brought unlock to about 1 second and a root-search retrieve of a 56-item vault to under a second in testing. The switch is off by default; when it is on, the backend still falls back to starting one bw per call automatically if the CLI is too old to serve or the running process stops answering, so a lookup never fails for want of the faster path, it only loses the speed-up. The persistent process is shut down when the vault is locked or you log out, so the unlocked vault does not outlive the session. The master password and every saved item now travel to the CLI in a request body rather than on the command line, so they no longer appear in the process list while a save is in flight. (rustconn-core/src/secret/bitwarden_serve.rs, rustconn-core/src/secret/bitwarden.rs, rustconn-core/src/config/settings.rs, rustconn/src/dialogs/settings/secrets_tab/mod.rs, rustconn/Cargo.toml)
  • Remote monitoring now supports MikroTik RouterOS — the monitoring bar previously worked only on Linux hosts, because it reads /proc/* and df, and a RouterOS device answers every one of those with "bad command name" (its SSH runs the RouterOS console, not a POSIX shell). RustConn now detects RouterOS on first contact and switches to its command set: CPU, memory and storage from /system resource, and network throughput from the summed /interface byte counters. CPU load is reported directly, so the bar is correct on the first sample; memory, disk and throughput populate as on Linux. Load average is not available on RouterOS and shows as N/A. Detection and the switch are automatic — nothing to configure. (rustconn-core/src/monitoring/parser.rs, rustconn-core/src/monitoring/collector.rs, rustconn-core/src/monitoring/metrics.rs, docs/USER_GUIDE.md)
  • The embedded RDP toolbar can hide the Windows-only tools for a Linux server (#366) — the toolbar's quick-actions menu launches Windows admin consoles (Computer Management, Device Manager, Registry Editor, Services and the rest) and the Scripts menu runs PowerShell or CMD, all by sending Windows key sequences. Against a Linux RDP server (GNOME Remote Desktop, KDE's KRdp, xrdp) they do nothing, so the RDP connection editor gains a Server OS choice under Features: set it to Linux and both menus are hidden for that connection, leaving Copy, Paste, Ctrl+Alt+Del and Auto Type, which work on any server. Auto (the default) and Windows keep the tools shown, so existing Windows profiles are unchanged. (rustconn-core/src/models/protocol.rs, rustconn/src/dialogs/connection/rdp.rs, rustconn/src/embedded_rdp/mod.rs, rustconn/src/embedded_rdp/connection.rs, docs/USER_GUIDE.md)

Fixed

  • The "Bitwarden vault is locked" banner cleared after unlocking through a connection — the startup banner that warns the selected password backend cannot store secrets yet was only re-checked at launch and after saving Settings, so unlocking the vault by opening a connection left the banner up even though the vault was then unlocked. A successful credential lookup now re-probes the backend and clears the banner. (rustconn/src/state/mod.rs, rustconn/src/app.rs)
  • Imported passwords are stored in the password backend you actually chose — importing connections (Remmina, MobaXterm, .rdp and the rest) wrote every imported password to the system keyring, whatever backend was selected. If that backend was Bitwarden, KeePass, 1Password or an encrypted file, the imported connections then came up with no password, because RustConn looked for it in the chosen backend and the keyring is not where it had gone. Imported credentials are now written to the selected backend, so they are found on the next connect. (rustconn/src/state/sync.rs, rustconn/src/vault_ops.rs)
  • Remote monitoring now works on OpenWrt and other BusyBox-based Linux hosts (#405, #406) — the metrics command used GNU df -x, which BusyBox does not implement, so the disk section came back empty and the bar reported 0% for the root filesystem. The command also excluded overlay/squashfs, exactly the filesystems OpenWrt boots from. The collector now runs plain df -Pk and filters pseudo-mounts in the parser, keeping / (the writable overlay) and /overlay and dropping /rom. The IP list falls back to hostname -i, and /etc/openwrt_release supplies the distro name on releases without /etc/os-release. Contributed by @shafiev. (rustconn-core/src/monitoring/parser.rs, docs/USER_GUIDE.md)

Documentation

  • Bitwarden setup guide covers the persistent bw serve CLI — a new "Keep the CLI running (optional, faster)" section explains what the Keep the CLI running (faster) switch does, compares per-call spawning with the kept-running process, says why the switch is off by default (the unlocked vault stays in that process's memory and is served over a local loopback socket), and lists what holds either way: the automatic fallback to one bw per call, shutdown on lock or logout, and secrets sent in the request body rather than on the command line. (docs/BITWARDEN_SETUP.md)
  • User guide documents RouterOS monitoring and the RDP Server OS choice — the Remote Monitoring section now names MikroTik RouterOS as a supported host, gives the RouterOS source for each metric (/system resource, summed /interface counters), notes that load average shows as N/A there, and states that BusyBox df on OpenWrt is supported. The RDP Quick Actions section explains that the tools are Windows-only and that setting Server OS to Linux under Features hides the Quick Actions and Scripts menus for that connection. (docs/USER_GUIDE.md)

Dependencies

  • Updated (semver-compatible, transitive): aes 0.9.3→0.9.4, cc 1.10.0→1.11.0, crc32fast 1.5.3→1.5.4, ctutils 0.4.7→0.4.8, openssl 0.10.81→0.10.82, openssl-sys 0.9.117→0.9.118, unicode-script 0.5.8→0.5.9, zip 9.2.0→9.2.2. A cargo update refresh for the release; cargo deny check advisories is clean. IronRDP stays on the October per-crate releases adopted in 0.24.3.

Installation

Flatpak (Recommended)

flatpak install flathub io.github.totoshko88.RustConn

Snap

sudo snap install rustconn

Debian/Ubuntu (.deb from this release)

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

Fedora (.rpm from this release)

sudo dnf install rustconn-0.24.5-1.fc44.x86_64.rpm

AppImage

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

macOS (Homebrew)

brew tap totoshko88/rustconn
brew install rustconn
open $(brew --prefix)/opt/rustconn/RustConn.app

All dependencies (GTK4, libadwaita, VTE, Adwaita icons) are installed automatically.
Requires macOS 13 (Ventura) or later.

OBS Repositories

Packages available at: https://build.opensuse.org/package/show/home:totoshko88:rustconn/rustconn

# Debian 13 (Trixie)
echo 'deb http://download.opensuse.org/repositories/home:/totoshko88:/rustconn/Debian_13/ /' \
  | sudo tee /etc/apt/sources.list.d/rustconn.list
curl -fsSL https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/Debian_13/Release.key \
  | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/rustconn.gpg > /dev/null
sudo apt update && sudo apt install rustconn

# Ubuntu 24.04 LTS (Noble)
echo 'deb http://download.opensuse.org/repositories/home:/totoshko88:/rustconn/xUbuntu_24.04/ /' \
  | sudo tee /etc/apt/sources.list.d/rustconn.list
curl -fsSL https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/xUbuntu_24.04/Release.key \
  | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/rustconn.gpg > /dev/null
sudo apt update && sudo apt install rustconn

# Ubuntu 26.04 LTS (Resolute)
echo 'deb http://download.opensuse.org/repositories/home:/totoshko88:/rustconn/xUbuntu_26.04/ /' \
  | sudo tee /etc/apt/sources.list.d/rustconn.list
curl -fsSL https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/xUbuntu_26.04/Release.key \
  | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/rustconn.gpg > /dev/null
sudo apt update && sudo apt install rustconn

# Fedora 44
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/Fedora_44/home:totoshko88:rustconn.repo
sudo dnf install rustconn

# Fedora 43
sudo dnf config-manager addrepo --from-repofile=https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/Fedora_43/home:totoshko88:rustconn.repo
sudo dnf install rustconn

# openSUSE Tumbleweed
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/openSUSE_Tumbleweed/ rustconn
sudo zypper ref && sudo zypper in rustconn

# openSUSE Leap 16.0
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/openSUSE_Leap_16.0/ rustconn
sudo zypper ref && sudo zypper in rustconn

Arch Linux (AUR)

yay -S rustconn

FreeBSD (Ports)

pkg install rustconn

Full installation guide: https://github.com/totoshko88/RustConn/blob/main/docs/INSTALL.md

Verifying your download

Every binary on this release (deb, rpm, AppImage, Flatpak) is covered two ways.

Plain checksums — download SHA256SUMS alongside the asset, then:

sha256sum -c SHA256SUMS

Signed build provenance (SLSA, via Sigstore) — proves the file was built by this
workflow from this commit:

gh attestation verify RustConn-0.24.5-x86_64.AppImage --repo totoshko88/RustConn

(The snap is signed by the Snap Store; the macOS build is delivered via the Homebrew tap.)