{"adoption": {"forks": 202, "observed_at": "2026-09-03T02:15:12.428249+00:00", "stars": 1003}, "canonical_url": "https://ross.abutalabs.com/products/rowhammer-test", "card": {"archived": true, "artifact_type": "cli-tool", "description": "Test DRAM for bit flips caused by the rowhammer problem", "domain": ["security", "hardware", "developer-tools"], "enriched": true, "function": ["testing", "security", "developer-tools"], "health_score": 10, "homepage": null, "language": "C++", "license": null, "license_family": "other", "maturity": "abandoned", "member_repos": ["google/rowhammer-test"], "name": "google/rowhammer-test", "platform": ["cpp", "cli"], "pushed_at": "2015-09-02T08:12:30+00:00", "repo": "google/rowhammer-test", "stars": 1003, "tags": ["rowhammer", "dram", "hardware-vulnerability", "memory-testing", "bit-flips", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["test if my RAM is vulnerable to rowhammer", "check DRAM for bit flips caused by memory disturbance errors", "verify whether a machine is susceptible to the rowhammer bug", "detect rowhammer vulnerability on x86 hardware", "research hardware security by hammering memory rows"], "what_it_is": "A userland test program that checks DRAM modules for bit flips caused by the rowhammer problem, where repeatedly accessing memory rows disturbs adjacent rows. It works on x86 Linux and Mac OS X by repeatedly accessing uncached memory locations using the CLFLUSH instruction.", "when_to_avoid": ["you need testing on ARM or other non-x86 architectures", "the machine contains important data, since the test can corrupt memory", "you need an actively maintained tool with recent hardware support"], "when_to_choose": ["you need to test x86 Linux or Mac machines for rowhammer susceptibility", "you are researching DRAM disturbance errors or hardware security", "you want a simple userland tool with no kernel driver required"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rowhammer-test", "repo": "google/rowhammer-test", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:13:51.589511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8690abfad7261b292ad01ca295ab4ce6ea306eb342ec36db83d2a3d4283fc3ef", "fetched_at": "2026-09-03T02:15:12.428249+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/rowhammer-test"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:13:51.589511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8690abfad7261b292ad01ca295ab4ce6ea306eb342ec36db83d2a3d4283fc3ef", "fetched_at": "2026-09-03T02:15:12.428249+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/rowhammer-test"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:13:51.589511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8690abfad7261b292ad01ca295ab4ce6ea306eb342ec36db83d2a3d4283fc3ef", "fetched_at": "2026-09-03T02:15:12.428249+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/rowhammer-test"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:13:51.589511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8690abfad7261b292ad01ca295ab4ce6ea306eb342ec36db83d2a3d4283fc3ef", "fetched_at": "2026-09-03T02:15:12.428249+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/rowhammer-test"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:13:51.589511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8690abfad7261b292ad01ca295ab4ce6ea306eb342ec36db83d2a3d4283fc3ef", "fetched_at": "2026-09-03T02:15:12.428249+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/rowhammer-test"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:13:51.589511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8690abfad7261b292ad01ca295ab4ce6ea306eb342ec36db83d2a3d4283fc3ef", "fetched_at": "2026-09-03T02:15:12.428249+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/rowhammer-test"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:12.428249+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:13:51.589511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8690abfad7261b292ad01ca295ab4ce6ea306eb342ec36db83d2a3d4283fc3ef", "fetched_at": "2026-09-03T02:15:12.428249+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/rowhammer-test"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:13:51.589511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8690abfad7261b292ad01ca295ab4ce6ea306eb342ec36db83d2a3d4283fc3ef", "fetched_at": "2026-09-03T02:15:12.428249+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/rowhammer-test"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:13:51.589511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8690abfad7261b292ad01ca295ab4ce6ea306eb342ec36db83d2a3d4283fc3ef", "fetched_at": "2026-09-03T02:15:12.428249+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/rowhammer-test"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:13:51.589511+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8690abfad7261b292ad01ca295ab4ce6ea306eb342ec36db83d2a3d4283fc3ef", "fetched_at": "2026-09-03T02:15:12.428249+00:00", "kind": "readme", "missing": false, "url": "https://github.com/google/rowhammer-test"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4257, "days_push": 4018, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}