# Contributing to QSSH
Thank you for your interest in contributing to QSSH! This guide will help you get started.
## Code of Conduct
Be respectful. We're all here to build quantum-safe infrastructure.
## Getting Started
1. Fork the repository
2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/qssh`
3. Create a branch: `git checkout -b feature/your-feature`
4. Make changes and test
5. Commit: `git commit -m "feat: add quantum teleportation"`
6. Push: `git push origin feature/your-feature`
7. Open a Pull Request
## Development Setup
```bash
# Install Rust
# Clone and build
git clone https://github.com/QuantumVerseProtocols/qssh
cd qssh
cargo build
cargo test
```
## Testing
All changes must include tests:
```bash
# Run all tests
cargo test
# Run with coverage
cargo tarpaulin
# Run benchmarks
cargo bench
```
## Code Style
- Run `cargo fmt` before committing
- Run `cargo clippy` and fix warnings
- Follow Rust naming conventions
## Commit Messages
We use conventional commits:
- `feat:` New feature
- `fix:` Bug fix
- `docs:` Documentation
- `test:` Tests
- `perf:` Performance
- `refactor:` Code refactoring
- `ci:` CI/CD changes
Example: `feat: add Dilithium algorithm support`
## Pull Request Process
1. Update README.md if needed
2. Add tests for new features
3. Ensure CI passes
4. Request review from maintainers
## Areas for Contribution
### Good First Issues
- Add more example code
- Improve error messages
- Write documentation
- Add integration tests
### Advanced Features
- New post-quantum algorithms
- Hardware crypto support
- Performance optimizations
- Platform-specific code
### Security
- Review crypto implementations
- Add side-channel protections
- Improve random number handling
## Questions?
- Open an issue for bugs
- Start a discussion for features
- Join our Discord: discord.gg/quantumverse
Thank you for contributing to quantum-safe communications!