Skip to content

Сравнение с madge / dependency-cruiser

madge и dependency-cruiser — два самых известных инструмента анализа зависимостей в JS. Archora использует тот же базовый примитив — парсит импорты и строит граф — но оптимизируется под другой workflow.

Сравнение

madgedependency-cruiserArchora
Основное назначениеВизуализация / список зависимостей, поиск цикловЭнфорс архитектурных правил в CIДиагностика «что чинить первым» и верификация фикса
ВыводДерево, список, картинка (graphviz)Lint-style violations, dot graphОчередь починки с reason/action/verify, HTML-бриф, fix-plan JSON
UIТолько CLIТолько CLIДесктоп + CLI + отчёты
Поиск цикловДаДа (по правилу)Да + suggested breakpoint, severity, кандидат на type-only auto-fix
Layer / boundary правилаНетДа (forbidden/allowed)Да (.archora.json contracts/layerOverrides) с live-preview
Hot zones / risk scoreНетНетДа (fan-in/out + cycles + churn)
Политика generated-кодаНетЧастично через excludesОтдельный analysis.generated (exclude / classify) с поправкой приоритета
Bundle awarenessНетЧастичноДа (heavy chunks, дубликаты, hot solos)
Git история (churn / coupling)НетНетДа (per-module churn, temporal coupling)
ФреймворкиJS/TSJS/TSTS/JS + Vue + Svelte + RSC директивы
Где хранятся данныеЛокальноЛокальноЛокально — исходники не покидают машину
Exit-коды для CIОграниченныеДаДа (--fail-on grade:D, cycles:0, new-cycles:0, signals:high, …)
Отчёты для ревьюКартинка / JSONJSON / HTMLHTML-бриф + fix-plan JSON + JUnit + Markdown
Diff против baselineНетОграниченДа (archora diff --base scan.json)

Что выбирать

  • Быстрая визуализация / «есть ли циклы?» — madge самый дешёвый ответ.
  • Lint-style утверждения в CI — у dependency-cruiser зрелый rule DSL и он отлично работает как чистый линтер.
  • Workflow починки на реальной кодовой базе — Archora, потому что вопрос смещается с «есть ли циклы?» на «какой именно важен, почему, где, и как безопасно проверить фикс?». Architecture Workspace, fix-plan JSON, generated policy и diff-baseline собраны вокруг этого workflow.

Их можно совмещать: оставить dependency-cruiser как строгий линтер, а Archora использовать как surface для диагностики и PR-бриф.

Local-first

И madge, и dependency-cruiser локальные по умолчанию. Archora явно делает это свойством продукта:

  • Десктоп-приложение и CLI работают полностью на машине пользователя. В процессе скана / парсинга / анализа / отчёта нет ни одного сетевого вызова.
  • Нет телеметрии. Метаданные проекта не покидают процесс.
  • Кэш (.archora/) — это локальные файлы, и только.

Если Archora заходит в регулируемое окружение, именно local-first — то свойство, на которое можно сослаться.

Выпущено под лицензией BUSL-1.1.