| Crates.io | bssh-russh |
| lib.rs | bssh-russh |
| version | 0.56.0 |
| created_at | 2026-01-24 02:46:30.405469+00 |
| updated_at | 2026-01-24 02:46:30.405469+00 |
| description | Temporary fork of russh with high-frequency PTY output fix (Handle::data from spawned tasks) |
| homepage | https://github.com/lablup/bssh |
| repository | https://github.com/lablup/bssh |
| max_upload_size | |
| id | 2065954 |
| size | 761,374 |
Temporary fork of russh with high-frequency PTY output fix.
This crate exists solely to address a specific issue where Handle::data() messages from spawned tasks may not be delivered to SSH clients during high-throughput PTY sessions.
When implementing SSH servers with interactive PTY support, shell output sent via Handle::data() from spawned tasks may not reach the client. The tokio::select! in russh's server session loop doesn't always wake up promptly for messages sent through the internal mpsc channel.
Added a try_recv() batch processing loop before select! to drain pending messages, with a limit of 64 messages per batch to maintain input responsiveness (e.g., Ctrl+C).
[dependencies]
russh = { package = "bssh-russh", version = "0.56" }
This fork tracks upstream russh releases. To sync with a new version:
cd crates/bssh-russh
./sync-upstream.sh 0.57.0 # specify version
Apache-2.0 (same as russh)