Thank you for your interest in contributing to mq-bridge! We welcome bug reports, feature requests, documentation improvements, and code contributions.
- Fork the repository and clone your fork locally.
- Install Rust (stable, via rustup).
- Install required dependencies for optional features (Kafka, NATS, AMQP, etc.) as needed. The test folder also has Docker-Compose files for the specific brokers, so you don't need to install them natively.
- Run tests to verify your environment:
cargo test --features full
- Run
cargo fmt --allbefore submitting a PR. - Ensure code passes
cargo clippy --all-features -- -D warnings. - Follow idiomatic Rust and existing code conventions.
- New endpoints or middleware:
- Add new files in
src/endpoints/orsrc/middleware/. - Update factory functions in
mod.rsas needed. - Add configuration models to
src/models.rs.
- Add new files in
- Tests:
- Add or update unit tests in the relevant module.
- Add integration tests in
tests/integration/if applicable.
- Documentation:
- Update
README.mdand add doc comments for public APIs.
- Update
- Unit tests:
cargo test - Integration tests:
cargo test --test integration_test --features full - Performance tests:
cargo bench
- Memory tests:
cargo test --test memory_test
Some integration tests require Docker services. See tests/integration/docker-compose/ for setup.
- Create a branch for your change.
- Write clear commit messages.
- Open a pull request against the
mainbranch. - Describe your changes and reference any related issues.
- Ensure all tests pass and CI checks succeed.
- Use GitHub Issues for bugs, enhancements, or questions.
- Provide as much detail as possible (logs, configs, steps to reproduce).
Be respectful and inclusive. See CODE_OF_CONDUCT.md if present.
Thank you for helping make mq-bridge better!