16 Repos
Static analysis of module graphs to detect circular imports and dependency errors.
Distinct from Static Analysis: Specifically targets module-level dependency graphs rather than general logic or type validation.
Explore 16 awesome GitHub repositories matching software engineering & architecture · Module Dependency Analysis. Refine with filters or upvote what's useful.
Madge is a JavaScript module dependency visualizer and architecture mapper. It analyzes source code to create graphs and diagrams of module relationships, supporting CommonJS, AMD, and ES6 standards. The tool functions as a circular dependency detector to identify recursive import loops and a dependency graph generator that exports relationship maps into image and vector formats. It provides utilities for auditing project structure, including the identification of orphaned modules and leaf modules. Its broader capabilities include dead code identification, module impact analysis through depe
Creates visual graphs and diagrams of module relationships for CommonJS, AMD, and ES6 source code.
Chameleon is a cross-platform application framework and component library used to develop applications for the web and various mini-app platforms from a single shared codebase. It functions as a multi-platform build pipeline that compiles source code into different target formats while providing an MVVM-based user interface system for managing application state. The framework employs a polymorphic protocol to extend custom components and APIs, allowing for platform-specific implementations while maintaining cross-end compatibility. It includes a specialized build tool for static analysis that
Analyzes dependency trees and markup syntax at build time to detect circular imports and template errors.
Traceur is a JavaScript syntax transpiler that transforms modern and next-generation language features into compatible versions for older runtime environments. It functions as a compiler that translates proposed language standards and upcoming syntax into current versions to maintain cross-engine compatibility. The project operates as an asynchronous code transformer, converting async functions and generators into promise-based state machines. It includes a functional tail-call optimizer that wraps recursive functions in trampolines to prevent stack overflows and an ECMAScript polyfill engine
Analyzes module dependency graphs through import and export statements to organize code loading.
Dependency-cruiser ist ein Analyse-Tool für Abhängigkeiten in JavaScript und TypeScript sowie ein Architektur-Linter. Es dient als statisches Analysetool zum Mapping, zur Visualisierung und zur Validierung von Modulbeziehungen innerhalb einer Codebasis, ohne dass der Code ausgeführt werden muss. Das Projekt zeichnet sich durch seine Fähigkeit aus, architektonische Grenzen durch ein regelbasiertes System durchzusetzen. Es erkennt zirkuläre Abhängigkeiten, identifiziert verwaiste Module (Orphan Modules) sowie toten Code und validiert Abhängigkeitsbeschränkungen anhand von Regeln für erlaubte und verbotene Beziehungen. Zudem bietet es quantitative Stabilitätsanalysen durch die Berechnung von afferenter und efferenter Kopplung, um fragile Bereiche eines Projekts zu identifizieren. Das Tool deckt ein breites Spektrum an Funktionen ab, darunter Modul-Parsing für ES6, CommonJS und TypeScript sowie die Visualisierung von Abhängigkeitsgraphen mit Aggregation auf Ordnerebene. Es bietet Automatisierungsfunktionen für Continuous Integration, wie z. B. Violation-Baselining und strukturierte Datenexporte in JSON- oder CSV-Formaten. Das System beinhaltet einen interaktiven Konfigurations-Bootstrapping-Prozess, um maßgeschneiderte Konfigurationsdateien basierend auf der lokalen Umgebung zu generieren.
Defines forbidden or allowed relationships between files or folders using path patterns to prevent regressions.
Visualize call graph of a Go program using Graphviz
Restricts the call graph to show only functions within a specified module for targeted analysis.
edk2 ist ein Entwicklungsprojekt zur Erstellung von System-Firmware, die der UEFI-Spezifikation entspricht. Es bietet die notwendige Infrastruktur, um Hardwareplattformen zu initialisieren und Betriebssysteme über mehrere CPU-Architekturen hinweg zu booten. Das Projekt nutzt eine modulare Firmware-Architektur, die High-Level-Management-Protokolle von physischen Transportschichten entkoppelt. Es implementiert kritische Sicherheitsfunktionen, einschließlich einer Measured-Boot-Kette, kryptografischer Primitive für die Image-Authentifizierung sowie Unterstützung für Trusted-Platform-Module-Hardware und -Softwareimplementierungen. Der Funktionsumfang erstreckt sich auf Plattform-Management-Standards wie Redfish, IPMI und MCTP sowie die Generierung dynamischer ACPI-Tabellen. Das Projekt enthält zudem eine umfassende Suite an Tools für die Cross-Architektur-Kompilierung, Firmware-Simulation und virtuelle Plattform-Emulation für Hypervisoren wie KVM, Xen und QEMU. Das Projekt umfasst ein Multi-Target-Build-System und automatisierte Test-Orchestrierung zur Validierung der Firmware-Funktionalität sowohl in emulierten als auch in physischen Umgebungen.
Compares module dependencies against allowed packages to prevent unauthorized cross-package dependencies.
eslint-plugin-import ist ein ESLint-Plugin für die statische Analyse, das eine Reihe von Regeln und Resolvern zur Validierung von Import-Statements und zur Durchsetzung architektonischer Vorgaben beim Importieren und Exportieren von Code bereitstellt. Es fungiert als Modul-Validator und Resolver, um sicherzustellen, dass Import-Deklarationen auf gültige Dateien verweisen und referenzierte Symbole existieren. Das Projekt identifiziert rekursive Import-Ketten, um zirkuläre Abhängigkeiten zu verhindern, und nutzt ein konfigurierbares Auflösungssystem, um Aliase und nicht-standardisierte Dateipfade abzubilden. Es kann zudem zwischen internen Projektdateien und externen Bibliotheksabhängigkeiten durch Pfad- und Ordner-Pattern-Matching unterscheiden. Das Plugin deckt weiterführende Bereiche der Code-Qualität ab, einschließlich der Durchsetzung von Import-Stilen für Sortierung und Gruppierung, der Einschränkung spezifischer Modulsysteme und der Verifizierung der Export-Verfügbarkeit zur Vermeidung von Laufzeitfehlern. Es kann zudem Import-Quellen basierend auf dem Ordnerstandort einschränken oder spezifische Pfadtypen untersagen.
Determines if a module is a local project file or an external dependency using path pattern matching.
TFLint ist ein statisches Analysetool und Infrastructure-as-Code-Validator, das darauf ausgelegt ist, Fehler zu identifizieren und Best Practices innerhalb von Terraform-Konfigurationsdateien durchzusetzen. Es fungiert als Qualitäts-Gate für automatisierte Workflows und als Language-Server, der Echtzeit-Diagnosen und Linting-Fehler direkt innerhalb unterstützter Texteditoren bereitstellt. Das Projekt nutzt ein gRPC-Plugin-Framework, das die Integration benutzerdefinierter, anbieterspezifischer Validierungsregeln über unabhängige Binärdateien und ein dediziertes SDK ermöglicht. Diese Architektur trennt die Kern-Linting-Logik von der Cloud-spezifischen Validierung und unterstützt die automatisierte Installation externer Regelsätze, um Ressourceneigenschaften gegen offizielle Spezifikationen zu prüfen. Die Analyse-Engine löst Konfigurationswerte auf und wertet integrierte Funktionen aus, wobei dynamische Blöcke und Ressourcensammlungen erweitert werden, um die endgültige instanziierte Struktur zu untersuchen. Sie deckt die Durchsetzung von Codierungsstandards, Modulaufruf-Analysen und die Erkennung ungültiger Ressourcenattribute ab, mit der Möglichkeit, strukturierte Ergebnisse in Formaten wie SARIF zu exportieren. Das Tool enthält eine Kommandozeilenschnittstelle für die Filterung von Analyse-Zielen und bietet automatische Fehlerkorrektur für unterstützte Regeln.
Inspects attributes within local and remote module calls to identify issues originating from module configurations.
Farm is a Rust-based web build tool and development server that compiles JavaScript, TypeScript, CSS, HTML, and static assets into optimized bundles. It uses a module-graph-based bundling approach with persistent module-level caching, enabling near-instant builds and sub-20ms hot module replacement during development. The tool processes assets based on file extensions, handling CSS, Sass, Less, PostCSS, HTML, and images as first-class modules without requiring JavaScript transformation. Farm distinguishes itself through its Vite-compatible plugin system, accepting Vite, Rollup, and Unplugin p
Discovers and registers module import dependencies to fully resolve the build dependency graph.
This project is a comprehensive Android reverse engineering suite that functions as a decompiler, bytecode deobfuscator, and malware analysis tool. It is designed to convert APK, DEX, and OAT binaries into human-readable source code using a native implementation that does not require a Java Virtual Machine. The platform is distinguished by its integration with Frida for dynamic analysis, allowing users to hook methods, inject custom JavaScript, and dump device memory in real time. It also features specialized security engines, including a taint propagation engine and a stack-state machine, to
Traces callers of specific functions to identify insecure implementation patterns in the function bodies.
code2flow ist ein statischer Programmfluss-Mapper und Generator für Quellcode-Aufrufdiagramme (Call Graphs). Er analysiert Quellcode, um visuelle Flussdiagramme zu erstellen, die Funktionsaufrufbeziehungen und Ausführungspfade abbilden. Das Projekt enthält einen Visualisierer für asynchrone Aufruf-Traces, der Ausführungspfade durch Async- und Await-Aufrufe verfolgt, um die Logik asynchroner Programme abzubilden. Es bietet zudem eine programmierbare Code-Analyse-Schnittstelle, die es ermöglicht, die Logik zur Generierung von Aufrufdiagrammen in andere Softwareanwendungen zu integrieren. Das System handhabt statische Code-Analyse durch die Konvertierung von Quellcode in abstrakte Syntaxbäume, um Funktionsdefinitionen und Aufrufstellen zu identifizieren. Es unterstützt das Filtern von Aufrufdiagrammen, um den Umfang der Visualisierungen durch Inhaltsfilter und tiefenbegrenzte Pfad-Extraktion einzuschränken, während es visuelles Styling zur Unterscheidung von Logikflüssen bietet.
Extracts subsets of the call graph by restricting the depth of connections from a target function.
Dieses Projekt ist eine Implementierung von React Server Components und bietet eine Full-Stack-Komponentenarchitektur, die serverseitiges Rendering mit clientseitiger Interaktivität verbindet. Es ermöglicht die Entwicklung von Webanwendungen, bei denen Server-only-Komponenten für das Datenabrufen und interaktive Client-Komponenten innerhalb eines einzigen Komponentenbaums koexistieren. Das System konzentriert sich auf die Server-Client-Datenorchestrierung und ermöglicht die Ausführung von Serverfunktionen und Datenbankmutationen über die Netzwerkgrenze hinweg. Es zeichnet sich durch eine hybride Komponentenarchitektur aus, die die Komponentenausführung auf den Server verlagert, um Client-Bundle-Größen zu reduzieren und die anfänglichen Ladezeiten zu verbessern. Das Projekt deckt ein breites Spektrum an Funktionen ab, einschließlich asynchronem Datenabruf mit Suspense, automatischer Komponenten-Memoization und Optimierung des serverseitigen Renderings. Es enthält zudem Tools zur Verwaltung komplexer Zustände, zur Koordination des Ladens von Assets zur Vermeidung von Layout-Verschiebungen und zum Aufbau plattformübergreifender Anwendungen für Web und Mobilgeräte. Entwickler-Tooling wird bereitgestellt, um unsaubere Komponenten zu erkennen, Modulabhängigkeiten zu analysieren und Komponentenhierarchien während der Entwicklung zu inspizieren.
Maps relationships between files and imports at build-time to minimize the final client bundle size.
Kùzu is an embedded property graph database engine designed for high-performance analytical queries and local data management. It operates as a library within the host application process, utilizing a columnar-based storage architecture and just-in-time query compilation to execute complex graph traversals and pattern matching efficiently. By mapping database files directly into system memory, it ensures data durability and high-speed access while maintaining ACID-compliant transactional integrity. The engine distinguishes itself by integrating vector similarity search and full-text search di
Retrieve lists of nodes or relationships from a recursive path to allow for further inspection or data processing.
node-modules-inspector is a Node.js dependency visualizer and npm package inspector. It provides a web interface for exploring the structure and contents of the node_modules directory to analyze and audit project dependencies. The tool functions as a static dependency graph generator, exporting a project's dependency view as a standalone single-page application. This allows the dependency tree to be hosted as static documentation for sharing and reference. The system scans the filesystem to build a map of installed packages and their physical locations. It includes capabilities for exploring
Analyzes the module graph within node_modules to identify redundant packages and version conflicts.
Closure Compiler is a JavaScript build utility designed to transform, optimize, and validate source code for production environments. It functions as a minifier and transpiler, converting modern ECMAScript syntax into older, widely compatible versions to ensure reliable execution across diverse browsers. The tool distinguishes itself through a multi-pass optimization pipeline that performs complex refactoring, such as constant folding, function inlining, and variable renaming. It utilizes a static type inference engine to detect potential runtime errors and enforce type safety without requiri
Analyzes module graphs to identify unused exports and prune unreachable code paths.
SVF is an open-source static program analysis framework and points-to analysis library that tracks memory references, variable aliases, and data dependencies across whole programs. The platform translates compiled intermediate code formats into unified internal representations, constructing constraint graphs, call graphs, and control-flow graphs to model interprocedural execution behavior and memory state. The framework incorporates specialized engines for flow-sensitive, flow-insensitive, and context-sensitive pointer analysis alongside sparse value-flow graph generation. It features memory
Inspects points-to relationships and program dependence information programmatically using custom driver scripts.