Thanks for your interest in contributing. Here's how to get going.
You need Rust 1.70+ (stable). Then:
git clone https://github.com/dragonGR/flowfilter.git
cd flowfilter
cargo buildThe binary ends up at target/debug/flowfilter. For an optimized build, use cargo build --release.
cargo testThat runs unit tests and integration tests. If you want to run benchmarks too:
cargo benchWe use rustfmt and clippy. Please run both before submitting:
cargo fmt
cargo clippy -- -D warningsCI will reject PRs that fail either check. The formatting config lives in rustfmt.toml at the repo root.
- Fork the repo and create a branch off
main. - Make your changes. Add tests for new functionality.
- Run
cargo fmt,cargo clippy -- -D warnings, andcargo test. - Open a pull request against
main.
Keep PRs focused -- one feature or fix per PR is easier to review than a grab bag. If your change is large, consider opening an issue first to discuss the approach.
Open an issue on GitHub. Include:
- What you tried to do
- What happened instead
- The command you ran (with input data if possible)
- Your OS and Rust version (
rustc --version)
Minimal reproducible examples make bugs much easier to track down.
If you want to add support for a new input format (e.g., TOML, YAML):
- Add a new module under
src/format/. - Implement the
FormatReadertrait for your format. - Wire it into
src/detect.rsfor auto-detection andsrc/main.rsfor the CLI flag. - Add sample data in
examples/sample_data/and an example script inexamples/. - Write tests.
By contributing, you agree that your contributions will be licensed under the MIT License.