Repository navigation
What's Changed
Added
- Bitwarden is much faster with an optional persistent CLI — the Bitwarden backend used to start a fresh
bwprocess 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 onebw serveprocess 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 onebwper 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/*anddf, 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/interfacebyte 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,
.rdpand 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 excludedoverlay/squashfs, exactly the filesystems OpenWrt boots from. The collector now runs plaindf -Pkand filters pseudo-mounts in the parser, keeping/(the writable overlay) and/overlayand dropping/rom. The IP list falls back tohostname -i, and/etc/openwrt_releasesupplies 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 serveCLI — 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 onebwper 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/interfacecounters), notes that load average shows as N/A there, and states that BusyBoxdfon 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 updaterefresh for the release;cargo deny check advisoriesis clean. IronRDP stays on the October per-crate releases adopted in 0.24.3.
Installation
Flatpak (Recommended)
flatpak install flathub io.github.totoshko88.RustConnSnap
sudo snap install rustconnDebian/Ubuntu (.deb from this release)
sudo dpkg -i rustconn_0.24.5_amd64.deb
sudo apt-get install -f # Install dependencies if neededFedora (.rpm from this release)
sudo dnf install rustconn-0.24.5-1.fc44.x86_64.rpmAppImage
chmod +x RustConn-0.24.5-x86_64.AppImage
./RustConn-0.24.5-x86_64.AppImagemacOS (Homebrew)
brew tap totoshko88/rustconn
brew install rustconn
open $(brew --prefix)/opt/rustconn/RustConn.appAll 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 rustconnArch Linux (AUR)
yay -S rustconnFreeBSD (Ports)
pkg install rustconnFull 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 SHA256SUMSSigned 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.)