Repository navigation
Termimus v0.4.7
Pre-release
Pre-release
Release v0.4.7 — Terminal Typing Latency Optimizations & TCP_NODELAY
This release focuses on terminal responsiveness and keystroke latency, eliminating network TCP buffering delays and streamlining the I/O pipeline between xterm.js and the Rust backend.
⚡ Performance Improvements
-
TCP_NODELAY (Disabled Nagle's Algorithm):
- Explicitly invokes
set_nodelay(true)on client TCP sockets before initiating the SSH handshake viaconnect_stream. - Eliminates the 40ms to 200ms per-character latency penalty previously caused by Nagle's algorithm buffering tiny keystroke packets while waiting for remote TCP Delayed ACKs.
- Uniformly applied across Terminal SSH, SFTP, and SSH Port Forwarding Tunnels.
- Explicitly invokes
-
Adaptive Zero-Delay Output Coalescing:
- Re-architected the Rust PTY output streaming loop with an adaptive flush mechanism:
- Interactive / Idle Stream: Keystroke echoes and prompt responses are emitted to the frontend immediately (0ms artificial delay), delivering an instant, tactile typing experience.
- High-Throughput Bursts (
cat,htop, build logs): Output arriving during active bursts is automatically coalesced into ~8ms / 64KB batches to safeguard Tauri's IPC event bridge against saturation.
- Re-architected the Rust PTY output streaming loop with an adaptive flush mechanism:
-
Non-blocking Concurrent Writes (
RwLock):- Migrated
SessionManager.sessionsfromtokio::sync::Mutextotokio::sync::RwLock. - Keystroke writes (
write) and terminal geometry adjustments (resize) now acquire concurrent read-locks without blocking each other or locking against active connections.
- Migrated
-
Frontend Garbage Collection Optimization:
- Converted
TextEncoderinstances inXtermView.tsxanduseSessionStore.tsinto module-level singletons, preventing object reallocation and GC spikes during rapid typing sessions.
- Converted
📦 Component Versions
| Component | Version | Package |
|---|---|---|
| Desktop Client (Tauri + Rust + React) | v0.4.7 |
Releases |
| Self-Hosted Sync Server (Go) | v0.4.7 |
ghcr.io/termimus/termimus-sync |
📝 Commit Summary
8280b0fperf(terminal): enable TCP_NODELAY & adaptive zero-delay echo; bump v0.4.7