Thrussh is the first Rust SSH library. The only non-Rust part is the crypto backend (handled by https://briansmith.org/rustdoc/ring/). This means that this library will never be subject to buffer overruns, double frees, etc. It is designed to work on any platform, and to work with asynchronous IO.
This also allows it to be as fast as others, since less time is spent on checking memory allocations (compilers do that better than humans), and more time is spent on performance. Also, contrarily to others, Thrussh uses no Unix-specific features, which means it’s Windows-compatible.
The documentation is on docs.rs.
See the documentation of https://crates.io/crates/thrussh, which includes examples for the latest version.
Also, the code is accessible using Pijul:
pijul clone https://nest.pijul.com/pijul/thrussh
unsafe
Thrussh uses no unsafe
blocks at all, although external libraries use them:
ring calls assembly and C code.
Thrussh uses the cryptovec crate, which uses malloc
and free
from libc.
The name comes from thrushes, a family of birds to which for instance blackbirds belong (although there are other meanings of this word).
The code of conduct for contributing to this project is the same as Rust’s. All contributions will be released under the same license as Thrussh itself, the Apache-2.0 license. Moreover, please do not attempt to report any vulnerability in this project privately to anybody.
The only place to report vulnerabilities is the Thrussh repository on the Nest.