# MetalSSH


MetalSSH is an experimental SSH implementation with these goals:
- Protocol represented cleanly as a state machine, so that invalid states are impossible
- Sans-IO, so that the protocol may be run over any transports
- Zero-copy as much as possible, doing no allocations within the library
- `no_std`-compatible such that the library works without a heap
- Modular cryptographic backends so that may be benchmarked against each other
## Tests
Run all tests:
```sh
cargo test
```
Run only integration tests, which hits the network:
```sh
cargo test --test integration
```
## Benchmarks
Benchmarks use `criterion` and run in release mode by default.
To view an HTML landing page with the benchmarks, run this after having run the benchmarks:
```sh
open target/criterion/report/index.html
```
Run cipher benchmarks:
```sh
cargo bench --bench cipher
```