fallow-rs/fallow

Codebase intelligence for TypeScript and JavaScript. Health, complexity hotspots, duplication, architecture boundaries, circular dependencies, design-system drift, and unused code, from one graph. CLI, GitHub Action, LSP, MCP, and VS Code. Rust, MIT licensed.

它解决的问题

保持大型 TypeScript 或 JavaScript 代码库的健康很困难:复杂度悄然增加,代码被重复,未使用的导出堆积,架构发生漂移。手动审查每个更改既缓慢又不一致。fallow 为团队提供了一种快速、确定性的方式来查看这些问题,并阻止新问题进入拉取请求。

它的工作原理

fallow 构建您的仓库图:模块、导出、依赖项、函数和样式令牌。然后,它对该图运行分析,以查找复杂度热点、循环依赖、重复代码、未使用的文件和导出、样式漂移等。该分析器使用 Rust 编写,并使用 Oxc 解析器,因此它不需要 TypeScript 编译器,也不需要 Node.js 运行时——只需要一个二进制文件。您可以使用 npx fallow 这样的单个命令运行它,它开箱即用,内置了 100 多个框架插件。

对于拉取请求,fallow audit 将更改的文件与基础分支进行比较,并且仅在更改引入的发现上失败。现有发现被排除在外,因此您可以在遗留代码库上采用 fallow,而无需先修复所有内容。类型感知分析、运行时覆盖和变异测试等可选功能增加了更深入的检查。

适用对象

适用于 TypeScript 或 JavaScript 项目的团队,他们希望在不进行大量配置的情况下保持高代码质量。它适合希望在终端中进行快速健康检查的开发人员、需要拉取请求门控的 CI 系统、显示文件内诊断的编辑器,以及需要结构化反馈的编码代理。它还帮助团队在现有代码库上采用静态分析,并提供分阶段采用和基线支持。

亮点

  • 单个 Rust 二进制文件,无需 TypeScript 编译器或配置即可开始
  • 检测复杂度、重复、死代码、架构漂移、样式问题等
  • fallow audit 根据更改引入的发现来门控拉取请求
  • 在终端、CI(GitHub Actions、GitLab)、编辑器(VS Code、LSP)和编码代理中运行
  • 快速:在不到 3 秒内找到 20,558 个文件的 monorepo 中的死代码
  • 确定性,分析器内没有 AI;只有可选的 similar-code 使用本地模型
  • 自动修复死代码、抑制注释,以及从 knip/jscpd/stylelint 迁移

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目