First of all, thank you for considering contributing to GoGuard! 🚀
GoGuard is open-source software, built with mathematical rigor at the compilation level for the entire Go ecosystem.
GoGuard is a dual-language project:
- Go is used inside the
goguard-go-bridge, which relies ongo/packagesandgo/ssato parse Go code and compile it into an SSA control flow graph. - Rust is our main engine, consuming a zero-copy FlatBuffers payload ("Fat Bridge") and executing high-performance fixed-point forward dataflow analysis and MCP server logic.
- Testing: Every PR should strive to pass our test suite. Rust code should use
cargo test, while the Go bridge has its owngo test ./...suites. - Rust Formatting: Ensure you run
cargo fmtandcargo clippy. We strive for 0 clippy warnings. - Open Source First: Core analysis features should benefit all developers freely and openly.
- Fork the GoGuard repository.
- Create your feature branch (
git checkout -b feature/amazing-feature). - Commit your changes (
git commit -m 'feat: add some amazing feature'). - Push to the branch (
git push origin feature/amazing-feature). - Open a Pull Request.
Feel free to open issues for bug reports, enhancement/feature requests, and discussions!