19 dépôts
Structural frameworks that enforce separation of concerns through component isolation, plugin systems, or directory-level decoupling.
Explore 19 awesome GitHub repositories matching software engineering & architecture · Modular Design Patterns. Refine with filters or upvote what's useful.
Chart.js is a declarative data visualization framework that renders interactive, responsive charts directly onto an HTML5 canvas element. It functions as a configuration-driven engine, transforming structured datasets into complex graphical representations by merging user-defined settings with global defaults. The library utilizes a high-performance rendering pipeline that executes drawing commands during each animation frame to maintain smooth visual feedback. The project distinguishes itself through a modular, extensible architecture that allows developers to register custom scales, control
Supports a modular architecture that allows developers to register custom scales, controllers, and plugins to extend core functionality.
This project provides a standardized directory layout pattern that establishes a predictable structure for organizing source code, configuration files, and documentation. It serves as a community-driven framework designed to improve project maintainability, simplify developer onboarding, and ensure consistency across large-scale software development efforts. By enforcing uniform file layouts, the project reduces cognitive load for developers working across multiple services or microservices. It utilizes convention-based folder templates to ensure that application logic, infrastructure, and co
Distinct top-level directories separate application logic from infrastructure, facilitating cleaner component decoupling.
FizzBuzzEnterpriseEdition is an enterprise-grade software architecture framework designed to demonstrate the application of complex design patterns to fundamental logic flows. It utilizes a modular component architecture to decouple business logic from infrastructure concerns, employing dependency injection containers to manage object lifecycles and enforce strict interface-based contracts between system units. The project distinguishes itself by applying rigorous enterprise software design principles to the generation of FizzBuzz sequences. By externalizing component wiring and application b
Organizes functionality into discrete, extensible units interacting through defined interfaces.
Presto is a distributed SQL query engine designed for high-performance analytical processing across heterogeneous data sources. It functions as a data federation platform and massively parallel processing engine, allowing users to execute interactive queries against diverse storage systems without requiring data migration. By mapping remote metadata and structures to a unified relational namespace, it enables seamless cross-platform analysis through a standard SQL interface. The engine distinguishes itself through a pluggable connector architecture and a shared-nothing distributed processing
Integrates custom components such as external data providers or sidecar services to augment core capabilities through a modular plugin architecture.
This repository serves as a technical reference and educational resource for implementing software design patterns within the Swift programming language. It provides a collection of common architectural patterns designed to help developers structure codebases for improved maintainability, scalability, and system organization. The project focuses on applying fundamental object-oriented and protocol-oriented principles to manage relationships between classes and objects. It demonstrates how to use language-level interfaces to define shared behaviors and how to organize components into cohesive
Organizes code into interchangeable strategies to swap algorithms at runtime by delegating tasks to separate objects.
This project is a comprehensive repository and curated index of resources, research papers, and development frameworks designed to support the construction and deployment of intelligent systems. It serves as a centralized knowledge base for developers seeking to navigate the technical landscape of artificial intelligence, ranging from foundational educational materials to specialized implementation guides. The repository distinguishes itself by providing structured directories for comparing generative artificial intelligence providers, including aggregated performance metrics, pricing data, a
Utilizes modular design patterns to connect disparate third-party libraries for interoperable workflows.
RT-Thread is an IoT real-time operating system and embedded device kernel. It provides a lightweight execution environment for microcontrollers, combining a real-time kernel with a hardware abstraction layer to manage multi-threaded task scheduling and hardware resource allocation. The project is built as a modular framework that utilizes a package-based ecosystem. This allows for the integration of reusable software libraries and high-level services through a loosely coupled architecture. The system covers real-time task scheduling, resource-constrained memory management, and embedded hardw
Implements an extensible architecture that allows high-level system services to be integrated as modular components.
xformers is a collection of specialized toolsets for fused GPU operators, sparse attention mechanisms, modular transformer components, and performance benchmarking. It provides a library of optimized and interoperable building blocks used to construct and experiment with transformer architectures. The project features a fused CUDA operator library that combines common layers into single GPU operations to increase throughput. It includes a sparse attention framework and memory-efficient attention kernels that utilize tiling strategies and structured sparsity patterns to reduce computational ov
Provides an interface for adding custom Transformer blocks that integrate with existing optimized components.
MMSegmentation is an open-source semantic segmentation toolbox built on PyTorch that provides a modular, configurable framework for building, training, evaluating, and deploying segmentation models. At its core, it offers a config-driven pipeline that assembles training, evaluation, and inference workflows by parsing hierarchical configuration files, with a modular component registry that enables plug-and-play composition of neural network modules, optimizers, datasets, and metrics. The framework supports the full model lifecycle through a unified runner interface that controls training, testi
Replaces or extends individual modules such as backbones, heads, or losses to create a tailored architecture.
AndroidNote is a technical knowledge base and reference resource for Android development. It provides comprehensive guidance on application architecture, custom view development, and advanced graphics programming. The project is distinguished by its depth in visual implementation, covering pseudo-3D perspective projections via virtual cameras and complex 2D rendering using Bézier curves and PorterDuff color blending. It also provides detailed methodologies for app modularization and the management of internal libraries through private Maven repositories and JitPack. The reference surface ext
Organizes Android projects into independent components to improve build scalability and team boundaries.
Flecs is a high-performance entity component system framework and data-oriented programming library. It serves as a simulation engine core and game engine architecture tool, decoupling state from behavior by separating entities, components, and systems. The framework features a runtime reflection layer for dynamic data inspection and a built-in scripting system for defining entity behavior without recompilation. It also includes a network interface and REST API for remote simulation administration and state querying. The library covers a broad surface of simulation capabilities, including ar
Implements an extensible component architecture that decouples state from behavior using the ECS pattern.
Clack is a Node.js CLI framework and prompt library designed for building stylized, interactive command-line user interfaces. It provides a toolkit for creating terminal applications that collect structured user input and display formatted information. The library includes a set of interactive terminal UI components, such as validated input fields for text and passwords, searchable selection menus with autocomplete, and grouped options for user choice. It also provides mechanisms for process visualization, including loading spinners, progress bars, and sequential task lists to communicate bac
Decouples visual prompt and spinner presentation from the underlying input collection and validation logic.
RecBole est un framework de recommandation basé sur PyTorch conçu pour construire, entraîner et évaluer une grande variété d'algorithmes de recommandation. Il sert d'environnement de benchmark standardisé qui permet la comparaison de différentes architectures de modèles en utilisant des jeux de données publics et des métriques d'évaluation cohérentes. Le projet fournit des boîtes à outils spécialisées pour la recommandation séquentielle et l'intégration de graphes de connaissances, permettant la prédiction de séquences d'éléments basées sur l'historique de l'utilisateur ou l'incorporation de connaissances externes structurées. Il inclut un moteur d'optimisation des hyperparamètres dédié qui utilise la recherche par grille et l'optimisation bayésienne pour ajuster les configurations de modèles. Le framework couvre un large éventail de capacités incluant la gestion des données pour standardiser les logs d'interaction, des pipelines d'entraînement avec synchronisation distribuée des gradients et exécution en précision mixte, et des outils d'évaluation complets pour le classement des candidats et l'analyse de diversité. Il prend en charge plusieurs types de recommandation, tels que le filtrage collaboratif général et la prédiction de taux de clic. La bibliothèque est implémentée en Python et utilise PyTorch pour son framework de recommandation sous-jacent.
Enables modifying trainers, data loaders, and samplers to adapt the pipeline to specific research requirements.
Pyramid est un framework web Python et une boîte à outils WSGI conçus pour créer des applications web. Il fonctionne comme un moteur de routage d'URL qui mappe les requêtes HTTP entrantes vers des vues spécifiques en utilisant à la fois le routage basé sur des motifs et la traversée d'arbres de ressources hiérarchiques. Le framework se distingue par son système de dispatch hybride, permettant aux développeurs de combiner la correspondance d'URL par expressions régulières avec la capacité de résoudre les requêtes en naviguant dans un arbre d'objets imbriqués. Il implémente une architecture de composants flexible qui prend en charge la gestion du registre d'applications, l'exécution différée de la configuration et la possibilité de remplacer des vues ou des routes sans modifier le code source original. Sa surface de capacités plus large couvre la gestion des identités via des cookies signés et l'autorisation basée sur les ACL, un système de coordination piloté par les événements pour le cycle de vie des requêtes, et des services d'internationalisation pour la traduction de l'UI. Il fournit également des outils pour le rendu de contenu via des sérialiseurs personnalisés et l'intégration de templates, ainsi qu'un pipeline de middleware pour injecter une logique transversale. La boîte à outils inclut une interface de ligne de commande administrative pour l'inspection des routes, le scaffolding de projets et le débogage d'applications.
Uses component patterns to manage application registries and provide flexible utility lookups.
cal-heatmap is a JavaScript visualization library used to render time-series data as a grid of colored cells. It functions as a customizable calendar component that maps data density and frequency over temporal intervals ranging from minutes to years. The library provides built-in support for localized temporal displays, allowing for the adjustment of regional date formats, timezones, and locale-specific week starts. It utilizes a plugin system for both the calendar layout and heatmap charts to extend behaviors and visual styles. The system manages data visualization through SVG-based grid r
Separates calendar logic from chart visualization to allow independent configuration of styles and scales.
mini-swe-agent is an autonomous software engineering system designed to develop features and fix bugs by combining large language models with a bash interface. It operates as an agentic framework that executes coding tasks and documentation updates through a continuous cycle of model reasoning and tool execution. The project differentiates itself with a strong focus on safety and evaluation, utilizing container-based sandbox execution via Docker or Singularity to isolate command execution. It includes a batch-parallel evaluation harness to measure code-fixing accuracy against standardized sof
Allows custom agents, models, and environments to be integrated via configuration paths without strict class inheritance.
Ce projet fournit un guide de style complet et un framework architectural pour construire des composants maintenables, modulaires et cohérents au sein de l'écosystème Vue.js. Il établit un ensemble de règles standardisées pour organiser les éléments d'interface utilisateur en unités autonomes, garantissant que la logique et les styles restent isolés pour éviter les effets secondaires involontaires. Le guide se distingue en se concentrant sur l'encapsulation stricte et la conception d'interface claire. Il promeut l'utilisation du scoping de style basé sur les espaces de noms pour éviter les fuites visuelles et impose des entrées de composants prévisibles via des conventions de nommage descriptives et des types de données simples. En définissant des limites claires pour les interactions entre composants, le framework garantit que les unités individuelles restent indépendantes et réutilisables dans des applications à grande échelle. Au-delà des modèles architecturaux de base, le projet couvre un large éventail de normes de développement, y compris des hiérarchies de fichiers standardisées, le linting automatisé et des pratiques de documentation pour les interfaces de composants. Il souligne l'importance de l'extraction de logique modulaire et des conventions de nommage cohérentes pour faciliter la collaboration entre les grandes équipes d'ingénierie. Le dépôt sert de référence pour implémenter des pratiques de codage uniformes et des modèles structurels tout au long du cycle de vie du développement.
Structures applications into small and self-contained units that perform single, well-defined tasks to improve maintainability.
Flutter-html is a markup rendering engine and UI component library that parses static HTML strings and CSS styles into native user interface widgets for cross-platform mobile and desktop applications. Its core architecture manages media controllers, style cascade engines, markup-to-widget translation, and native platform view embedding through modular extension packages. The library supports content styling using cascading style sheet rules, custom element rendering, data tables, mathematical equation rendering, vector graphics, and embedded frames or web browser components. It includes mult
Delegates specialized media types and complex markup tags to decoupled packages that plug into the core rendering pipeline.
Track-extension is a browser extension for Chrome and Firefox that records work hours and manages active timers directly from the browser toolbar and centralized popup menus. It functions as a productivity utility by embedding interactive time measurement controls into third-party websites and project management tools, preventing context switching while tracking task duration. The extension injects timer buttons into external web applications by matching page URLs against registered rule sets and manipulating the host document structure at runtime. It configures these embedded timers with des
Renders centralized control menus using lightweight UI components bundled within the extension package.