16 repositorios
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 es un analizador de dependencias y linter arquitectónico para JavaScript y TypeScript. Sirve como herramienta de análisis estático para mapear, visualizar y validar las relaciones entre módulos dentro de un codebase sin necesidad de ejecutar el código. El proyecto se distingue por su capacidad para imponer límites arquitectónicos mediante un sistema basado en reglas. Detecta dependencias circulares, identifica módulos huérfanos y código muerto, y valida restricciones de dependencia utilizando reglas de relaciones permitidas y prohibidas. También proporciona análisis cuantitativo de estabilidad calculando el acoplamiento aferente y eferente para identificar áreas frágiles de un proyecto. La herramienta cubre una amplia gama de capacidades, incluyendo el análisis de módulos multi-estándar para ES6, CommonJS y TypeScript, así como la visualización de grafos de dependencia con agregación a nivel de carpeta. Proporciona funciones de automatización para integración continua, como el establecimiento de líneas base de violaciones y exportaciones de datos estructurados en formatos JSON o CSV. El sistema incluye un proceso interactivo de bootstrapping de configuración del proyecto para generar archivos de configuración adaptados al entorno local.
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 es un proyecto de desarrollo para crear firmware de sistema que cumpla con la especificación UEFI. Proporciona la infraestructura necesaria para inicializar plataformas de hardware y arrancar sistemas operativos a través de múltiples arquitecturas de CPU. El proyecto utiliza una arquitectura de firmware modular que desacopla los protocolos de gestión de alto nivel de las capas de transporte físico. Implementa características de seguridad críticas, incluyendo una cadena de arranque medida, primitivas criptográficas para la autenticación de imágenes y soporte para implementaciones de hardware y software de Trusted Platform Module (TPM). Su superficie de capacidades se extiende a estándares de gestión de plataformas como Redfish, IPMI y MCTP, así como a la generación de tablas ACPI dinámicas. El proyecto también incluye un conjunto completo de herramientas para compilación entre arquitecturas, simulación de firmware y emulación de plataformas virtuales para hipervisores como KVM, Xen y QEMU. El proyecto incluye un sistema de compilación multi-objetivo y orquestación de pruebas automatizadas para validar la funcionalidad del firmware tanto en entornos emulados como físicos.
Compares module dependencies against allowed packages to prevent unauthorized cross-package dependencies.
eslint-plugin-import es un plugin de análisis estático para ESLint que proporciona un conjunto de reglas y resolvedores para validar sentencias de importación y aplicar restricciones arquitectónicas sobre cómo los archivos importan y exportan código. Funciona como un validador y resolvedor de módulos para asegurar que las declaraciones de importación apunten a archivos válidos y que los símbolos referenciados existan. El proyecto identifica cadenas de importación recursivas para prevenir dependencias circulares y utiliza un sistema de resolución configurable para mapear alias y rutas de archivo no estándar. También puede distinguir entre archivos internos del proyecto y dependencias de bibliotecas externas mediante coincidencia de patrones de rutas y carpetas. El plugin cubre áreas más amplias de calidad de código, incluyendo la aplicación de estilos de importación para ordenamiento y agrupación, la restricción de sistemas de módulos específicos y la verificación de la disponibilidad de exportaciones para prevenir errores en tiempo de ejecución. Además, puede limitar las fuentes de importación según la ubicación de la carpeta o prohibir tipos de rutas específicos.
Determines if a module is a local project file or an external dependency using path pattern matching.
TFLint es una herramienta de análisis estático y validador de infraestructura como código diseñada para identificar errores y aplicar mejores prácticas dentro de los archivos de configuración de Terraform. Funciona como una puerta de calidad para flujos de trabajo automatizados y un servidor de lenguaje que proporciona diagnósticos en tiempo real y errores de linting directamente dentro de los editores de texto compatibles. El proyecto utiliza un framework de plugins gRPC que permite la integración de reglas de validación específicas del proveedor personalizadas a través de binarios independientes y un SDK dedicado. Esta arquitectura separa la lógica de linting central de la validación específica de la nube, admitiendo la instalación automatizada de conjuntos de reglas externos para verificar las propiedades de los recursos contra las especificaciones oficiales. El motor de análisis resuelve los valores de configuración y evalúa las funciones integradas, expandiendo bloques dinámicos y colecciones de recursos para inspeccionar la estructura instanciada final. Cubre la aplicación de estándares de codificación, análisis de llamadas a módulos y la detección de atributos de recursos no válidos, con la capacidad de exportar resultados estructurados en formatos como SARIF. La herramienta incluye una interfaz de línea de comandos para el filtrado de objetivos de análisis y proporciona corrección automática de problemas para las reglas admitidas.
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.
Este proyecto es una suite integral de ingeniería inversa para Android que funciona como descompilador, desofuscador de bytecode y herramienta de análisis de malware. Está diseñado para convertir binarios APK, DEX y OAT en código fuente legible por humanos utilizando una implementación nativa que no requiere una Máquina Virtual Java. La plataforma destaca por su integración con Frida para el análisis dinámico, permitiendo a los usuarios enganchar métodos, inyectar JavaScript personalizado y volcar la memoria del dispositivo en tiempo real. También cuenta con motores de seguridad especializados, incluyendo un motor de propagación de contaminación (taint propagation) y una máquina de estados de pila, para detectar fugas de privacidad, comportamientos maliciosos y vulnerabilidades de seguridad. La suite cubre una amplia gama de capacidades analíticas, incluyendo el parcheo y reempaquetado de binarios, mapeo de dependencias de referencias cruzadas y análisis de flujo de datos. Proporciona herramientas para la identificación de empaquetadores de software, decodificación de cadenas cifradas y búsqueda global de metadatos a través de los recursos de la aplicación. La herramienta proporciona una interfaz de línea de comandos y admite la automatización del análisis mediante scripts personalizados en Python o Java.
Traces callers of specific functions to identify insecure implementation patterns in the function bodies.
code2flow es un mapeador de flujo de programas estático y generador de grafos de llamadas de código fuente. Analiza el código fuente para producir diagramas de flujo visuales que mapean las relaciones de llamadas a funciones y las rutas de ejecución. El proyecto incluye un visualizador de trazas de llamadas asíncronas que sigue las rutas de ejecución a través de llamadas async y await para mapear la lógica de programas asíncronos. También proporciona una interfaz de análisis de código programable, permitiendo que la lógica de generación de grafos de llamadas se integre en otras aplicaciones de software. El sistema maneja el análisis de código estático convirtiendo el código fuente en árboles de sintaxis abstracta para identificar definiciones de funciones y sitios de llamadas. Admite el filtrado de grafos de llamadas para restringir el alcance de las visualizaciones a través de filtros de contenido y extracción de rutas con límite de profundidad, mientras proporciona un estilo visual para distinguir los flujos lógicos.
Extracts subsets of the call graph by restricting the depth of connections from a target function.
This project is an implementation of React Server Components, providing a full-stack component architecture that blends server-side rendering with client-side interactivity. It enables the development of web applications where server-only components for data fetching and interactive client components coexist within a single component tree. The system focuses on server-client data orchestration, allowing for the execution of server functions and database mutations across the network boundary. It distinguishes itself through a hybrid component architecture that shifts component execution to the
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.