# Contributing to RateFlow
Thank you for considering contributing to RateFlow!
## Development Setup
1. Clone the repository
2. Run `cargo build` to build the project
3. Run `cargo test` to run tests
4. Run `cargo run --example <name>` to run examples
## Running Tests
```bash
# Run all tests
cargo test
# Run specific test
cargo test test_name
# Run with output
cargo test -- --nocapture
```
## Running Examples
```bash
# Basic rate limiting
cargo run --example basic
# Multi-tier rate limiting
cargo run --example multi_tier
# Strategy comparison
cargo run --example strategies
# Web API simulation
cargo run --example web_api
```
## Code Style
- Follow Rust standard formatting (use `cargo fmt`)
- Run `cargo clippy` before submitting
- Write tests for new features
- Add documentation for public APIs
## Pull Request Process
1. Ensure all tests pass
2. Update README.md if needed
3. Add examples for new features
4. Write clear commit messages
## Areas for Contribution
- Additional rate limiting algorithms (leaky bucket, etc.)
- Middleware integrations (actix-web, axum, rocket)
- Persistence backends (Redis, PostgreSQL)
- Performance optimizations
- Documentation improvements
- More examples
## Questions?
Feel free to open an issue for any questions or suggestions!