12 dépôts
Architectural patterns that organize application logic into modular, reusable, and configurable plugins.
Distinct from Hook-Based Plugin Systems: Existing candidates are too specific to interpreters, exports, manifests, or hooks; this is a general plugin architecture for business logic.
Explore 12 awesome GitHub repositories matching software engineering & architecture · Plugin-Based Architectures. Refine with filters or upvote what's useful.
Yo est un framework CLI Node.js et un orchestrateur de templates de projet utilisé pour automatiser la création de projets logiciels standardisés. Il fonctionne comme un générateur de projet interactif et un exécuteur de scaffolding qui produit du code source personnalisé et des manifestes basés sur l'entrée utilisateur et des templates prédéfinis. Le système utilise une architecture basée sur des plugins pour découvrir et exécuter des outils de configuration externes. Il se distingue par un système de fichiers orienté mémoire qui résout les conflits avant de valider les changements sur le disque et un modèle d'orchestration de tâches par file d'attente prioritaire pour assurer l'ordre d'exécution correct des configurations complexes. Le framework couvre un large éventail de capacités d'automatisation, incluant l'invite utilisateur interactive, la génération de fichiers basée sur des templates et la modification programmatique de manifestes de paquets. Il fournit également des utilitaires pour l'automatisation de l'installation des dépendances, la gestion du cycle de vie des générateurs et des frameworks de test pour vérifier les structures de fichiers de sortie.
Uses a plugin-based architecture to discover and execute external setup tools from the local file system.
Seneca est un framework d'architecture pilotée par les messages et une boîte à outils de microservices pour Node.js. Il fonctionne comme un orchestrateur de tâches distribué et un routeur de messages basé sur des patterns, permettant aux développeurs de construire des systèmes de services découplés qui communiquent via un bus de messages. Le framework se distingue par un système de plugins modulaire qui organise la logique métier en modules réutilisables et configurables. Il prend en charge les extensions d'action dynamiques, permettant à de nouveaux gestionnaires d'envelopper ou de remplacer des patterns d'action existants pour injecter une logique personnalisée sans modifier le code original. Le système couvre un large éventail de capacités incluant la communication de services distribués, l'orchestration d'actions asynchrones et la gestion de données d'entité. Il fournit également des outils d'observabilité pour le traçage de patterns d'action, la visualisation de logs basée sur le web et des utilitaires d'assurance qualité pour le mocking de dépendances de services.
Organizes business logic into reusable, configurable plugins that can be loaded into service instances.
sofa-rpc est un framework d'appel de procédure distante (RPC) basé sur Java conçu pour exécuter des fonctions distantes et échanger des données entre des applications distribuées. Il sert d'orchestrateur de services distribués et d'outil de communication, fournissant un gestionnaire intégré au registre pour localiser et suivre les points de terminaison réseau actifs à travers un cluster. Le framework est construit avec une architecture de plugin basée sur des interfaces, permettant à la logique interne et aux comportements RPC d'être personnalisés via des interfaces d'abstraction. Cette extensibilité permet l'implémentation d'une logique métier spécialisée sans modifier le système central. Le système assure une haute disponibilité et fiabilité via le basculement automatique de cluster, la gestion des pannes et des stratégies d'équilibrage de charge dynamique. Il gère le routage du trafic de service et utilise une couche de transport abstraite pour découpler la logique de communication des protocoles réseau physiques.
Employs an architectural pattern that allows internal framework behavior to be customized via modular plugins.
CouchPotatoServer is an automated movie downloader and media collection manager. It functions as a background service that monitors watchlists and automatically acquires new movie releases via BitTorrent or Usenet. The project acts as a plugin-based orchestrator that coordinates file discovery and download requests across different binary protocols. It employs an event-driven pipeline to manage the full lifecycle of a media file, from initial discovery on indexers to final placement in local storage. The system manages home media libraries through relational database tracking and pattern-bas
Provides a modular plugin system to integrate diverse indexers and download clients.
pyload is a Python-based download manager that automates file transfers from web hosters and cloud storage services. It functions as a modular task automator, utilizing a plugin-based architecture to handle site-specific connection protocols and decryption requirements. The system provides multiple ways to interact with the download queue, including a centralized web-based dashboard for remote management and a terminal interface for command-line control. It also acts as a REST API download controller, exposing system functions and status tracking to external applications through an OpenAPI-co
Implements a framework for loading external scripts to handle site-specific download logic and hoster requirements.
This project is a cross-platform device integration suite that synchronizes notifications, clipboards, and files between computers and mobile devices over a local network. It functions as a notification mirroring service, a remote input controller, a remote system manager, and a wireless file transfer tool. The system enables the use of a mobile device as a wireless touchpad, keyboard, and presentation remote. It allows for the remote execution of console commands, multimedia playback control, and the monitoring of mobile battery status from a desktop interface. Capabilities cover a broad ra
Implements a modular architecture where specific capabilities are organized as independent plugins.
This project is a logging framework for Java environments, providing a standardized interface for capturing diagnostic application events and maintaining persistent audit trails. It functions as an enterprise-grade logging engine designed to handle high-throughput applications while managing complex diagnostic data. The framework distinguishes itself through a modular provider architecture that allows for the dynamic swapping of logging implementations and output destinations. It utilizes a hierarchical configuration system that enables granular control over logging behavior, supported by plu
Provides a modular system for dynamically swapping logging implementations and appenders through a standardized interface.
Tomahawk is a multi-source music player that aggregates local audio files and online streaming services into a single interface. It functions as a social music discovery platform, enabling users to browse shared libraries, exchange tracks, and participate in collaborative listening sessions. The application distinguishes itself through a decentralized peer-to-peer architecture that facilitates direct media discovery and data exchange between users without relying on a central server. It utilizes a modular resolver framework that allows for the integration of custom plugins, enabling the conne
Uses a modular plugin architecture to translate platform-specific APIs into a unified internal format.
Budgie Desktop is a graphical workspace environment for Linux systems that integrates window management, application launching, and system control tools. Built upon the GTK toolkit, it provides a unified shell for organizing open windows and interacting with daily computing tasks. The environment distinguishes itself through a modular, plugin-based panel architecture that allows for the dynamic loading of applets into a shared container. It utilizes a centralized object-oriented framework to manage component lifecycles and relies on a dedicated service for secure, authenticated handling of ad
Extends the desktop interface by dynamically loading modular applets into a shared container to provide customizable system functionality.
This project provides a lightweight Markdown text editing component designed for integration into React applications. It offers a split-pane interface that allows users to author content in a raw text editor while simultaneously viewing a rendered preview, with synchronized scrolling to ensure the two views remain aligned during the writing process. The editor is built to be highly extensible, allowing developers to customize the interface by toggling specific toolbar buttons or preview areas. It supports a plugin-based architecture for custom parsing logic and provides a callback-driven work
Uses a plugin-based architecture to inject custom syntax parsing and rendering logic into the editor.
Mitsuba is a physically based rendering engine that calculates realistic light interactions to produce accurate synthetic images using both biased and unbiased numerical integration techniques. It is designed for computer graphics research and supports interactive three-dimensional scene inspection through a graphical interface that provides progressive real-time previewing, refining images iteratively when movement stops. The system features a plugin-based architecture that dynamically loads modular components at runtime to incorporate custom materials, light sources, and complete rendering
Organizes core application logic into modular and configurable plugins loaded dynamically at runtime.
Documenter.jl is a documentation generator designed to transform Julia source code and markdown files into structured, navigable technical websites. It functions as a static site generator that compiles project information into interlinked HTML pages, providing a framework for organizing software implementation details and API references. The system distinguishes itself through a multi-pass rendering process that ensures consistent cross-reference link resolution across all project symbols. By utilizing abstract syntax tree introspection, it extracts metadata directly from the language runtim
Provides a plugin architecture for injecting custom logic and handling specialized content types.