(no title)
bumahkib7 | 25 days ago
The rules get embedded via include_bytes!(), so there's no file loading or parsing at runtime - just pattern matching against ASTs.
Trickiest part was metavariables. Semgrep patterns like eval($X) need to capture arbitrary expressions, but tree-sitter queries don't have that concept natively. Ended up building a
translator that converts patterns to S-expressions with captures.
647 rules across 28 languages. Still has false positives on generated code.
cargo install rma-cli
No comments yet.