YARA-X
v1.22.0 open-sourceThe section your link pointed to isn't on YARA-X's page any more, so we've brought you to the top.
A rewrite of YARA in Rust.
rule offset_example {
condition:
pe.offset_to_rva(0x400) > 0
}
yr scan --ignore-invalid-rules rules/ /path/to/samples/
rule lnk_suspicious_cpl_target {
condition:
for any item in lnk.target_id_list : (
item.item_type == lnk.ShellItemType.CONTROL_PANEL_CPL and
item.cpl_file_path endswith ".dll"
)
}
rule lnk_network_target {
condition:
for any item in lnk.target_id_list : (
item.item_type == lnk.ShellItemType.NETWORK_LOCATION and
item.network_location startswith "\\\\")
}
yara-x --cpu-limit 4 rules.yar target_file
yara-x --fast-scan rules.yar target.bin
yara-x scan --context-size 64 rules.yar target.bin
yara-x deps path/to/rules
import yara_x
rules = yara_x.Rules()
rules.add_source_file('example.yr')
compiled = rules.compile()
results = compiled.invoke('file.txt', metadata={'key': 'value'})
yr fix warnings path/to/rules.yar
yara-x scan --max-matches-per-pattern 100 rule.yrX target.bin
rules.scan(target="target.bin", max_matches_per_pattern=50)
yrx_scanner_set_module_data(scanner, "my_module", my_data_ptr);
import yara
rules = yara.compile('rule_file.yr')
rules.invoke('module_name', args)
yara-x --format json rules.yar input.bin
yara-x --profiling scan rules.yar input.bin
yara-x --recursive -r rule.yar -d target_dir/
import yara_x
# Type hints are now available for yara_x classes and functions
compiler = yara_x.Compiler()
yara-x fmt rules/*.yar
yara-x scan --ignore-module suspicious_mod target.yar .
yara-x scan --tag critical --print-tags --print-meta /path/to/rules/ /path/to/target.bin
yara-x scan --count /path/to/rules/ /path/to/directory/
yara-x scan --format ndjson rules.yar target_file
Summary
YARA-X is an open-source pattern-matching tool, written in Rust, that scans files against rules combining textual or binary patterns with boolean logic to identify malware families. It is run as a command-line tool, and is built to replace the original YARA as the default engine for this kind of work, aiming to be faster, safer, and more user-friendly than its predecessor, which the project says remains maintained but is no longer where new features land. It is aimed at malware researchers writing and maintaining detection rules, with a compiler that now warns about low-specificity single-byte patterns and duplicate definitions to catch weak rules early. With 51 contributors and 808 commits in the past year across 11 releases, the most recent just 58 days ago, it is under active development.
A rewrite of YARA in Rust.
How YARA-X helps
Which files in this directory are infected with a known malware family?
matches every rule's textual or binary patterns and boolean logic against each file and reports which rule fired, by file, so a researcher gets a verdict per sample without opening a debugger
Does a suspicious binary contain any of the byte sequences or strings we associate with a known threat actor?
scans the file for each pattern defined in the rule set, including wildcards, case-insensitive strings and regular expressions, and reports which specific patterns matched and where
Is this new detection rule actually specific enough to trust in production?
flags low-specificity single-byte patterns and duplicate pattern definitions at compile time, so a weak rule is caught before it is run against real samples
Which of my rules will fail to compile before I run them across a whole malware corpus?
compiles the rule set up front and can skip the rules that fail rather than aborting the entire scan, so the rest of the corpus still gets checked and the broken rules are named separately
Can I still use the malware family rules I already wrote for the old engine?
documents the behavioral and syntax differences from the predecessor rule format so an author can see where an existing rule's logic or output will change before relying on it
Languages
Command line
No command matches.
| option | found in | since | description |
|---|
Values are placeholders taken from each option’s declared default. Nothing is executed here — the output shown is a recording of a run that already happened.
Score card
-
Shipping velocity releases a month, last 12 months
-
Documentation quality release-notes rubric, 0–100
-
Breaking-change discipline how rarely a release breaks users, and notice given
-
Maintenance risk quiet time against its own cadence, maintainers
-
Innovation & surface new capabilities, API and MCP surface
- Community health
-
Contributor trend distinct committers, this year against last
-
Maintainer concentration bus factor now against a year ago
-
Issue backlog trend issues closed per issue opened, 12 months
-
Responsiveness median time to a maintainer’s first reply
Nine scores for YARA-X, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.
Score cards are part of every paid plan.
See plans → Already subscribed? Sign in →Trajectory
Blank means never measured; nothing here is a filled-in zero.
Peer standings are included with Researcher and Business. See how this tool ranks against its competitors, using data we don't publish anywhere else.
See plans →Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.
How this is scored
- Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
- Documentation quality — the release-notes rubric published on the analytics page, unchanged.
- Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
- Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
- Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
- Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
- Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
- Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.
Release-note detail over time
See how much detail YARA-X puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.
Checking release-note history…
Coverage
Missing something? Tell us
What YARA-X connects to, runs on and detects, read from its release notes and docs. So far: 1 new supported platform.
1 change, tracked since Sep 29, 2026.
-
Sep 292026
new Additional ELF machine types in the `elf` module
Add support for more ELF machine types in `elf` module (23a75aa).
Operating systems 1
Nothing first seen in this window. That doesn't mean YARA-X shipped nothing, only that we found no record of it.
How we count
Read from 3 of 37 release notes and docs updates we hold for YARA-X. "First seen" is the earliest note that names something; "last" is the latest. Our history may start partway through YARA-X's life, so an old integration can show a recent first-seen date.
Each change counts once: "added 40 checks" is one line, so the numbers measure how often coverage moves, not how big the catalogue is or how well it detects.
Releases
37 entries
No entries match these filters.
- October 20261
- September 20262
- August 20264
- June 20262
- May 20262
- April 20261
- March 20261
- February 20261
- January 20261
- November 20252
- October 20251
- September 20252
- August 20251
- July 20252
- June 20252
- May 20251
- March 20251
- February 20251
- December 20241
- November 20241
- October 20242
- September 20241
- August 20241
- July 20242
- May 20241
Project health
Issue, contributor and maintainer activity in VirusTotal/yara-x, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.
- Contributors 30 +9 vs prior 12 months
- Maintainers 1 +0 joined · −0 left, last 12 months
- Bus factor 1 committers behind half the commits
- Community-filed 99% of issues opened, last 12 months
- Median time to close 1.3 days first maintainer reply 11 hours
- Open backlog 29 of 282 issues ever filed
- Issues opened / month 2 · 0 communitymaintainers
- Open backlog 29
- Contributors / month 4
- Commits / month 17
- Stars 1,281
- other 100%
Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this
Libraries its release ships
What its latest release locks, checked against known advisories.None of its release's images build from a lockfile we can read.
Add the badge to your README
Maintain this project? The badge links readers straight to this page, so they can follow every release here.