Contributing to YARA-X
July 27, 2026 ยท View on GitHub
Thank you for your interest in contributing to YARA-X! We welcome contributions from the community, whether it's reporting bugs, improving documentation, or submitting pull requests.
Contributor License Agreement (CLA)
YARA-X is a project maintained by VirusTotal (a subsidiary of Google). Contributions to this project must be accompanied by a Contributor License Agreement (CLA).
Signing the CLA
Before we can accept and merge your pull requests, you will need to sign a Contributor License Agreement:
- Individual CLA: If you are contributing as an individual, please complete the online Individual Contributor License Agreement.
- Corporate CLA: If you are contributing on behalf of your employer, your organization must sign a Corporate Contributor License Agreement.
When you open a pull request, an automated status check (cla/google) will
verify whether you have signed the CLA. If you have not signed it yet, follow
the link provided by the status check to complete the agreement.
CONTRIBUTORS and AUTHORS Files
CONTRIBUTORS: Lists individuals who are authorized to contribute code to the repository. Names and email addresses are added after the individual or their organization agrees to the CLA.AUTHORS: Lists copyright holders for the repository (such as Google Inc. or corporate contributors).
Code Style & Formatting
We adhere to standard Rust coding conventions and enforce code quality checks in CI:
-
Formatting (
rustfmt):- Code formatting is configured via
rustfmt.toml(e.g.max_width = 79). - Format your code before submitting a PR:
cargo fmt --all - Verify formatting compliance locally:
cargo fmt --all --check
- Code formatting is configured via
-
Linting (
clippy):- We use Clippy to ensure clean, idiomatic Rust code.
- Ensure there are no Clippy warnings or errors before submitting your PR:
cargo clippy --workspace --tests --no-deps -- --deny clippy::all
-
Style References:
- Refer to the canonical Rust Style Guide for style rules.
Development & Contribution Workflow
Follow these steps to contribute code or fixes:
-
Fork & Clone:
- Fork the YARA-X repository on GitHub and clone your fork locally.
-
Create a Feature Branch:
- Create a branch for your changes:
git checkout -b feature/my-changes
- Create a branch for your changes:
-
Make Your Changes & Test:
- Implement your feature, bug fix, or documentation update.
- Run the test suite:
cargo test --workspace
-
Verify Code Quality:
- Run formatting and linter checks:
cargo fmt --all --check cargo clippy --workspace --tests --no-deps -- --deny clippy::all
- Run formatting and linter checks:
-
Submit a Pull Request:
- Push your branch to your GitHub fork and open a Pull Request against
main. - Ensure you have signed the Google CLA so the
cla/googlestatus check passes.
- Push your branch to your GitHub fork and open a Pull Request against
Reporting Issues
If you encounter bugs or have feature requests, please check existing issues before opening a new one. Feel free to open a new issue with detailed reproduction steps or feature context.