{"adoption": {"forks": 329, "observed_at": "2026-08-28T04:07:09.747788+00:00", "stars": 2675}, "canonical_url": "https://ross.abutalabs.com/products/cfr", "card": {"archived": false, "artifact_type": "cli-tool", "description": "This is the public repository for the CFR Java decompiler", "domain": ["developer-tools", "reverse-engineering"], "enriched": true, "function": ["parser", "reverse-engineering", "developer-tools"], "health_score": 71, "homepage": "https://www.benf.org/other/cfr", "language": "Java", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["leibnitz27/cfr"], "name": "leibnitz27/cfr", "platform": ["jvm", "cli", "cross-platform"], "pushed_at": "2026-06-04T04:54:33+00:00", "repo": "leibnitz27/cfr", "stars": 2675, "tags": ["java-decompiler", "class-file-reader", "bytecode-analysis", "jar-decompilation", "jvm"], "topics": [], "urls": [], "use_cases": ["decompile a java class file back to source", "decompile an entire jar to java source code", "recover source code from compiled java bytecode", "decompile modern java features like switch expressions and pattern matching", "decompile kotlin or scala class files to java", "analyze obfuscated or third-party java bytecode", "use a java decompiler as a library via API"], "what_it_is": "CFR (Class File Reader) is a Java decompiler written entirely in Java 6 that can decompile modern Java bytecode, including features from Java 9 through 14+, and even class files from other JVM languages. It can be used as a command-line tool on individual classes or entire jars, and also exposes an API since version 0.135.", "when_to_avoid": ["you need to decompile non-JVM languages like C or .NET assemblies", "you need a GUI-based decompiler experience", "you require line-number-perfect output for debugger use without caveats"], "when_to_choose": ["you need to decompile bytecode from recent Java versions (9-14+) while running on an old JVM", "you want a dependency-free, standalone jar decompiler", "you need to decompile whole jars with output to a directory", "you want a decompiler usable both as CLI and as an embedded API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cfr", "repo": "leibnitz27/cfr", "role": "main", "score": 61}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:18:02.647551+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f631304f5600fe84387b469ca8702119ef32585bd82674ef467ebb9653ab2e5f", "fetched_at": "2026-08-28T04:07:09.747788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leibnitz27/cfr"}, {"content_hash": "fe07304ac0b6d31094c4e4d90b29f0b24674c85be4281bf72256b7ceb98ec882", "fetched_at": "2026-08-29T10:00:32.333463+00:00", "kind": "homepage", "missing": false, "url": "https://www.benf.org/other/cfr"}, {"content_hash": "54f744cae7d189d7b86439d6a10192c582ca9b9ed67eee00bae04356430b12ea", "fetched_at": "2026-08-29T10:00:32.337323+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/java9observations.html"}, {"content_hash": "26337ed49e14ccc3479ced7ef4e992591fe2e01829d792fe3081f67fc8bbef14", "fetched_at": "2026-08-29T10:00:32.339313+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/faq.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:18:02.647551+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f631304f5600fe84387b469ca8702119ef32585bd82674ef467ebb9653ab2e5f", "fetched_at": "2026-08-28T04:07:09.747788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leibnitz27/cfr"}, {"content_hash": "fe07304ac0b6d31094c4e4d90b29f0b24674c85be4281bf72256b7ceb98ec882", "fetched_at": "2026-08-29T10:00:32.333463+00:00", "kind": "homepage", "missing": false, "url": "https://www.benf.org/other/cfr"}, {"content_hash": "54f744cae7d189d7b86439d6a10192c582ca9b9ed67eee00bae04356430b12ea", "fetched_at": "2026-08-29T10:00:32.337323+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/java9observations.html"}, {"content_hash": "26337ed49e14ccc3479ced7ef4e992591fe2e01829d792fe3081f67fc8bbef14", "fetched_at": "2026-08-29T10:00:32.339313+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/faq.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:18:02.647551+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f631304f5600fe84387b469ca8702119ef32585bd82674ef467ebb9653ab2e5f", "fetched_at": "2026-08-28T04:07:09.747788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leibnitz27/cfr"}, {"content_hash": "fe07304ac0b6d31094c4e4d90b29f0b24674c85be4281bf72256b7ceb98ec882", "fetched_at": "2026-08-29T10:00:32.333463+00:00", "kind": "homepage", "missing": false, "url": "https://www.benf.org/other/cfr"}, {"content_hash": "54f744cae7d189d7b86439d6a10192c582ca9b9ed67eee00bae04356430b12ea", "fetched_at": "2026-08-29T10:00:32.337323+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/java9observations.html"}, {"content_hash": "26337ed49e14ccc3479ced7ef4e992591fe2e01829d792fe3081f67fc8bbef14", "fetched_at": "2026-08-29T10:00:32.339313+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/faq.html"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:18:02.647551+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f631304f5600fe84387b469ca8702119ef32585bd82674ef467ebb9653ab2e5f", "fetched_at": "2026-08-28T04:07:09.747788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leibnitz27/cfr"}, {"content_hash": "fe07304ac0b6d31094c4e4d90b29f0b24674c85be4281bf72256b7ceb98ec882", "fetched_at": "2026-08-29T10:00:32.333463+00:00", "kind": "homepage", "missing": false, "url": "https://www.benf.org/other/cfr"}, {"content_hash": "54f744cae7d189d7b86439d6a10192c582ca9b9ed67eee00bae04356430b12ea", "fetched_at": "2026-08-29T10:00:32.337323+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/java9observations.html"}, {"content_hash": "26337ed49e14ccc3479ced7ef4e992591fe2e01829d792fe3081f67fc8bbef14", "fetched_at": "2026-08-29T10:00:32.339313+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/faq.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:18:02.647551+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f631304f5600fe84387b469ca8702119ef32585bd82674ef467ebb9653ab2e5f", "fetched_at": "2026-08-28T04:07:09.747788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leibnitz27/cfr"}, {"content_hash": "fe07304ac0b6d31094c4e4d90b29f0b24674c85be4281bf72256b7ceb98ec882", "fetched_at": "2026-08-29T10:00:32.333463+00:00", "kind": "homepage", "missing": false, "url": "https://www.benf.org/other/cfr"}, {"content_hash": "54f744cae7d189d7b86439d6a10192c582ca9b9ed67eee00bae04356430b12ea", "fetched_at": "2026-08-29T10:00:32.337323+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/java9observations.html"}, {"content_hash": "26337ed49e14ccc3479ced7ef4e992591fe2e01829d792fe3081f67fc8bbef14", "fetched_at": "2026-08-29T10:00:32.339313+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/faq.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:18:02.647551+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f631304f5600fe84387b469ca8702119ef32585bd82674ef467ebb9653ab2e5f", "fetched_at": "2026-08-28T04:07:09.747788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leibnitz27/cfr"}, {"content_hash": "fe07304ac0b6d31094c4e4d90b29f0b24674c85be4281bf72256b7ceb98ec882", "fetched_at": "2026-08-29T10:00:32.333463+00:00", "kind": "homepage", "missing": false, "url": "https://www.benf.org/other/cfr"}, {"content_hash": "54f744cae7d189d7b86439d6a10192c582ca9b9ed67eee00bae04356430b12ea", "fetched_at": "2026-08-29T10:00:32.337323+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/java9observations.html"}, {"content_hash": "26337ed49e14ccc3479ced7ef4e992591fe2e01829d792fe3081f67fc8bbef14", "fetched_at": "2026-08-29T10:00:32.339313+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/faq.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:09.747788+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:18:02.647551+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f631304f5600fe84387b469ca8702119ef32585bd82674ef467ebb9653ab2e5f", "fetched_at": "2026-08-28T04:07:09.747788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leibnitz27/cfr"}, {"content_hash": "fe07304ac0b6d31094c4e4d90b29f0b24674c85be4281bf72256b7ceb98ec882", "fetched_at": "2026-08-29T10:00:32.333463+00:00", "kind": "homepage", "missing": false, "url": "https://www.benf.org/other/cfr"}, {"content_hash": "54f744cae7d189d7b86439d6a10192c582ca9b9ed67eee00bae04356430b12ea", "fetched_at": "2026-08-29T10:00:32.337323+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/java9observations.html"}, {"content_hash": "26337ed49e14ccc3479ced7ef4e992591fe2e01829d792fe3081f67fc8bbef14", "fetched_at": "2026-08-29T10:00:32.339313+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/faq.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:18:02.647551+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f631304f5600fe84387b469ca8702119ef32585bd82674ef467ebb9653ab2e5f", "fetched_at": "2026-08-28T04:07:09.747788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leibnitz27/cfr"}, {"content_hash": "fe07304ac0b6d31094c4e4d90b29f0b24674c85be4281bf72256b7ceb98ec882", "fetched_at": "2026-08-29T10:00:32.333463+00:00", "kind": "homepage", "missing": false, "url": "https://www.benf.org/other/cfr"}, {"content_hash": "54f744cae7d189d7b86439d6a10192c582ca9b9ed67eee00bae04356430b12ea", "fetched_at": "2026-08-29T10:00:32.337323+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/java9observations.html"}, {"content_hash": "26337ed49e14ccc3479ced7ef4e992591fe2e01829d792fe3081f67fc8bbef14", "fetched_at": "2026-08-29T10:00:32.339313+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/faq.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:18:02.647551+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f631304f5600fe84387b469ca8702119ef32585bd82674ef467ebb9653ab2e5f", "fetched_at": "2026-08-28T04:07:09.747788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leibnitz27/cfr"}, {"content_hash": "fe07304ac0b6d31094c4e4d90b29f0b24674c85be4281bf72256b7ceb98ec882", "fetched_at": "2026-08-29T10:00:32.333463+00:00", "kind": "homepage", "missing": false, "url": "https://www.benf.org/other/cfr"}, {"content_hash": "54f744cae7d189d7b86439d6a10192c582ca9b9ed67eee00bae04356430b12ea", "fetched_at": "2026-08-29T10:00:32.337323+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/java9observations.html"}, {"content_hash": "26337ed49e14ccc3479ced7ef4e992591fe2e01829d792fe3081f67fc8bbef14", "fetched_at": "2026-08-29T10:00:32.339313+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/faq.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:18:02.647551+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f631304f5600fe84387b469ca8702119ef32585bd82674ef467ebb9653ab2e5f", "fetched_at": "2026-08-28T04:07:09.747788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/leibnitz27/cfr"}, {"content_hash": "fe07304ac0b6d31094c4e4d90b29f0b24674c85be4281bf72256b7ceb98ec882", "fetched_at": "2026-08-29T10:00:32.333463+00:00", "kind": "homepage", "missing": false, "url": "https://www.benf.org/other/cfr"}, {"content_hash": "54f744cae7d189d7b86439d6a10192c582ca9b9ed67eee00bae04356430b12ea", "fetched_at": "2026-08-29T10:00:32.337323+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/java9observations.html"}, {"content_hash": "26337ed49e14ccc3479ced7ef4e992591fe2e01829d792fe3081f67fc8bbef14", "fetched_at": "2026-08-29T10:00:32.339313+00:00", "kind": "site_page", "missing": false, "url": "https://www.benf.org/other/cfr/faq.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 85, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4496, "days_push": 90, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 61, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}