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), 코딩 에이전트에서 실행
  • 빠름: 20,558개 파일 모노레포에서 3초 미만으로 죽은 코드 찾기
  • 결정적, 분석기 내부에 AI 없음. 옵트인 similar-code만 로컬 모델 사용
  • 죽은 코드 자동 수정, 억제 주석, knip/jscpd/stylelint에서 마이그레이션

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트