hashing 0.1.8

A robust, production-ready hashing library and CLI tool supporting multiple algorithms
Documentation
# Contributing to Hashing

Thank you for your interest in contributing to the Hashing project! We welcome contributions from everyone.

## Getting Started

1. Fork the repository
2. Clone your fork:
   ```bash
   git clone https://github.com/YOUR_USERNAME/hashing
   cd hashing
   ```
3. Create a new branch:
   ```bash
   git checkout -b feature/your-feature-name
   ```

## Development Setup

### Prerequisites
- Rust 1.70 or later
- Cargo (comes with Rust)

### Building
```bash
cargo build
```

### Running Tests
```bash
# Run all tests
cargo test

# Run tests with output
cargo test -- --nocapture

# Run specific test
cargo test test_name
```

### Running Benchmarks
```bash
cargo bench
```

### Running Examples
```bash
cargo run --example basic
cargo run --example file_integrity
cargo run --example batch_processing
```

## Code Style

- Follow the official Rust style guide
- Use `rustfmt` to format code:
  ```bash
  cargo fmt
  ```
- Run `clippy` for linting:
  ```bash
  cargo clippy -- -D warnings
  ```

## Adding New Hash Algorithms

To add a new hash algorithm:

1. Add the dependency to `Cargo.toml`
2. Add the algorithm variant to the `Algorithm` enum in `src/lib.rs`
3. Implement the algorithm in `hash_bytes()` and `hash_file()` functions
4. Add the algorithm name to `Algorithm::name()` and `Algorithm::from_str()`
5. Add tests for the new algorithm
6. Update documentation

## Testing Guidelines

- Write tests for all new features
- Ensure all tests pass before submitting PR
- Add integration tests for new functionality
- Include edge cases in tests
- Test with various input sizes

## Documentation

- Add doc comments for all public APIs
- Include examples in doc comments
- Update README.md if needed
- Add entries to CHANGELOG.md

## Pull Request Process

1. Update documentation and tests
2. Ensure all tests pass
3. Run `cargo fmt` and `cargo clippy`
4. Update CHANGELOG.md with your changes
5. Submit pull request with clear description
6. Wait for review and address feedback

## Code Review

All submissions require review. We use GitHub pull requests for this purpose.

## Reporting Bugs

Please use GitHub Issues to report bugs. Include:
- Description of the bug
- Steps to reproduce
- Expected behavior
- Actual behavior
- System information (OS, Rust version)
- Relevant logs or error messages

## Feature Requests

We welcome feature requests! Please use GitHub Issues and include:
- Clear description of the feature
- Use cases and motivation
- Example usage (if applicable)

## Questions?

Feel free to open an issue for questions or reach out to the maintainer at cumulus13@gmail.com

## License

By contributing, you agree that your contributions will be licensed under the same license as the project (MIT OR Apache-2.0).