{"adoption": {"forks": 55, "observed_at": "2026-08-28T04:05:55.297778+00:00", "stars": 1923}, "canonical_url": "https://ross.abutalabs.com/products/fastmod", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A fast partial replacement for the codemod tool. Assists with large-scale codebase refactors via regex-based find and replace with human oversight and occasional intervention.", "domain": ["developer-tools", "version-control"], "enriched": true, "function": ["developer-tools", "cli", "search-engine"], "health_score": 81, "homepage": null, "language": "Rust", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["facebookincubator/fastmod"], "name": "facebookincubator/fastmod", "platform": ["windows", "cli", "rust"], "pushed_at": "2026-07-28T17:37:32+00:00", "repo": "facebookincubator/fastmod", "stars": 1923, "tags": ["codemod", "find-and-replace", "refactoring", "regex", "bulk-editing", "command-line", "linux", "macos"], "topics": ["cli", "command-line", "command-line-tool", "find-and-replace", "rust", "replace"], "urls": [], "use_cases": ["find and replace across an entire codebase with regex", "interactively review and apply bulk code refactors", "deprecate an API or HTML tag across many files", "apply a verified regex replacement everywhere in a large repo", "rewrite patterns across files with per-match accept/reject/edit control"], "what_it_is": "fastmod is a fast, Rust-based partial replacement for the codemod tool that assists with large-scale codebase refactors via regex-based find and replace. It emphasizes an interactive workflow where users verify their regex with colored diffs before applying replacements everywhere, with options to accept, reject, or edit each change.", "when_to_avoid": ["you rely on codemod's --start, --end, or --count options", "you need codemod's Python API or programmatic integration", "your regexes require lookaround or backreferences (Rust regex syntax differs)"], "when_to_choose": ["you want codemod-like interactive find-and-replace with much better performance", "you need to verify a regex interactively then apply it across a whole codebase", "you want fast parallel directory traversal for bulk edits"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/fastmod", "repo": "facebookincubator/fastmod", "role": "main", "score": 65}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:09:38.042804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "737c4151f5cf1a0630689fe755b429549a25132cc26ded661523380a9fc16be0", "fetched_at": "2026-08-28T04:05:55.297778+00:00", "kind": "readme", "missing": false, "url": "https://github.com/facebookincubator/fastmod"}, {"content_hash": "ef519d4deede937e7c98da718ce9d06dd590ff4c1a9cf773442ef20475f33223", "fetched_at": "2026-08-29T10:48:56.644359+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/fastmod"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:09:38.042804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "737c4151f5cf1a0630689fe755b429549a25132cc26ded661523380a9fc16be0", "fetched_at": "2026-08-28T04:05:55.297778+00:00", "kind": "readme", "missing": false, "url": "https://github.com/facebookincubator/fastmod"}, {"content_hash": "ef519d4deede937e7c98da718ce9d06dd590ff4c1a9cf773442ef20475f33223", "fetched_at": "2026-08-29T10:48:56.644359+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/fastmod"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:09:38.042804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "737c4151f5cf1a0630689fe755b429549a25132cc26ded661523380a9fc16be0", "fetched_at": "2026-08-28T04:05:55.297778+00:00", "kind": "readme", "missing": false, "url": "https://github.com/facebookincubator/fastmod"}, {"content_hash": "ef519d4deede937e7c98da718ce9d06dd590ff4c1a9cf773442ef20475f33223", "fetched_at": "2026-08-29T10:48:56.644359+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/fastmod"}], "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:05:55.297778+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:09:38.042804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "737c4151f5cf1a0630689fe755b429549a25132cc26ded661523380a9fc16be0", "fetched_at": "2026-08-28T04:05:55.297778+00:00", "kind": "readme", "missing": false, "url": "https://github.com/facebookincubator/fastmod"}, {"content_hash": "ef519d4deede937e7c98da718ce9d06dd590ff4c1a9cf773442ef20475f33223", "fetched_at": "2026-08-29T10:48:56.644359+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/fastmod"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:09:38.042804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "737c4151f5cf1a0630689fe755b429549a25132cc26ded661523380a9fc16be0", "fetched_at": "2026-08-28T04:05:55.297778+00:00", "kind": "readme", "missing": false, "url": "https://github.com/facebookincubator/fastmod"}, {"content_hash": "ef519d4deede937e7c98da718ce9d06dd590ff4c1a9cf773442ef20475f33223", "fetched_at": "2026-08-29T10:48:56.644359+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/fastmod"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:09:38.042804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "737c4151f5cf1a0630689fe755b429549a25132cc26ded661523380a9fc16be0", "fetched_at": "2026-08-28T04:05:55.297778+00:00", "kind": "readme", "missing": false, "url": "https://github.com/facebookincubator/fastmod"}, {"content_hash": "ef519d4deede937e7c98da718ce9d06dd590ff4c1a9cf773442ef20475f33223", "fetched_at": "2026-08-29T10:48:56.644359+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/fastmod"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:55.297778+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:09:38.042804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "737c4151f5cf1a0630689fe755b429549a25132cc26ded661523380a9fc16be0", "fetched_at": "2026-08-28T04:05:55.297778+00:00", "kind": "readme", "missing": false, "url": "https://github.com/facebookincubator/fastmod"}, {"content_hash": "ef519d4deede937e7c98da718ce9d06dd590ff4c1a9cf773442ef20475f33223", "fetched_at": "2026-08-29T10:48:56.644359+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/fastmod"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:09:38.042804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "737c4151f5cf1a0630689fe755b429549a25132cc26ded661523380a9fc16be0", "fetched_at": "2026-08-28T04:05:55.297778+00:00", "kind": "readme", "missing": false, "url": "https://github.com/facebookincubator/fastmod"}, {"content_hash": "ef519d4deede937e7c98da718ce9d06dd590ff4c1a9cf773442ef20475f33223", "fetched_at": "2026-08-29T10:48:56.644359+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/fastmod"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:09:38.042804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "737c4151f5cf1a0630689fe755b429549a25132cc26ded661523380a9fc16be0", "fetched_at": "2026-08-28T04:05:55.297778+00:00", "kind": "readme", "missing": false, "url": "https://github.com/facebookincubator/fastmod"}, {"content_hash": "ef519d4deede937e7c98da718ce9d06dd590ff4c1a9cf773442ef20475f33223", "fetched_at": "2026-08-29T10:48:56.644359+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/fastmod"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:09:38.042804+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "737c4151f5cf1a0630689fe755b429549a25132cc26ded661523380a9fc16be0", "fetched_at": "2026-08-28T04:05:55.297778+00:00", "kind": "readme", "missing": false, "url": "https://github.com/facebookincubator/fastmod"}, {"content_hash": "ef519d4deede937e7c98da718ce9d06dd590ff4c1a9cf773442ef20475f33223", "fetched_at": "2026-08-29T10:48:56.644359+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/fastmod"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 94, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3061, "days_push": 36, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 65, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}