# Contributing to sshr

Thank you for your interest in contributing!

## What We Welcome

- **Bug fixes** — typos, edge cases, error handling improvements
- **New backends** — additional SSH library implementations beyond russh
- **Documentation** — doc comments, examples, README improvements
- **Tests** — more edge cases, integration tests, mock scenarios
- **Performance** — obvious optimizations with benchmarks

## What We Usually Decline

- **Domain-specific tools** — SSH is a transport layer; domain logic belongs in upper-layer crates
- **Major API overhauls without discussion** — please open an issue first

## Getting Started

```bash
# Clone and build
git clone https://github.com/nickkzeng/sshr.git
cd sshr
cargo build

# Run tests
cargo test

# Check formatting
cargo fmt --check

# Run clippy
cargo clippy --all-targets
```

## Pull Request Guidelines

1. Keep changes focused. One PR = one concern.
2. Add tests for new functionality.
3. Ensure `cargo test` passes.
4. Run `cargo fmt` before committing.
5. Keep the `Cargo.toml` dependency list minimal.

## Code of Conduct

Be respectful. That's it.
