16 dépôts
Architectures where plugins are executed in separate OS processes to prevent system-wide crashes.
Distinct from Plugin Systems: Specifically addresses OS-level process isolation for plugins, not just modular architecture.
Explore 16 awesome GitHub repositories matching development tools & productivity · Process-Isolated Plugins. Refine with filters or upvote what's useful.
Homebridge is a Node.js home automation server that acts as a bridge to expose non-native smart home devices to Apple HomeKit. It functions as a plugin-based framework that maps proprietary device APIs to standardized home automation services and protocols. The system utilizes a modular plugin architecture and a protocol emulation layer to make third-party hardware appear as native accessories. It further supports cross-platform compatibility by acting as a Matter device bridge, allowing Matter-standard hardware to connect to various home automation controllers. The software includes a web i
Runs plugins in independent child processes to ensure that individual plugin failures do not crash the main server.
VirtualAPK is an Android plugin framework and runtime environment designed to load and execute external Android packages dynamically. It functions as a component host that allows a main application to run activities, services, and providers delivered via external modules without requiring system installation or manifest registration. The framework enables dynamic feature delivery by loading external packages at runtime, allowing application functionality to be updated without redeploying the entire app. It provides a mechanism for Android sandbox execution, running isolated components within
Maintains separate class loader hierarchies for each plugin to prevent dependency conflicts between modules.
Xray is a collaborative text editor and distributed workspace manager that utilizes conflict-free replicated data types to synchronize real-time edits and directory structures across peers. It functions as both an Electron-based desktop application and a headless editor server that manages workspaces and file systems remotely for connected clients. The project distinguishes itself by integrating fine-grained version control tracking, recording keystroke-level changes and uncommitted edits between Git commits. It employs a decentralized synchronization model for working copies and uses operati
Provides a plugin system where extensions execute in isolated threads to prevent blocking the main user interface.
Atlas is a modularization system and dynamic component framework for Android. It functions as a class isolation layer and incremental update engine, allowing application logic and resources to be decoupled into independent bundles that are loaded at runtime. The project distinguishes itself by providing physical bundle isolation through custom class loaders to prevent dependency conflicts and bypass method count limits. It enables the deployment of remote components and incremental patches, using bytecode diffs and resource patching to update specific application parts without requiring a ful
Implements custom class loader isolation to maintain separate namespaces for application bundles and prevent dependency conflicts.
RePlugin is an Android plugin framework and component orchestrator designed to load external activities, services, and receivers into an application without updating the main binary. It functions as a dynamic feature delivery system that decouples application modules into independent plugins. The framework provides a communication bridge for bidirectional data exchange between the host application and external plugins, as well as inter-plugin synchronization. It manages the entire plugin lifecycle, including installation, version management, and integrity verification to ensure the safety of
Manages independent resources and context passing to ensure plugin compatibility across different operating system versions.
jvm-sandbox is a bytecode instrumentation framework and plugin container for the Java Virtual Machine. It acts as a runtime application modifier that enables the injection and modification of bytecode in a running process without requiring an application restart or changes to the original source code. The system provides a non-invasive aspect-oriented programming framework to intercept method execution and alter behavior in live processes. It functions as an isolated environment for functional modules, employing a custom class loader hierarchy to prevent dependency conflicts between plugins a
Loads modules using a custom class loader to prevent version conflicts between plugins and the target application.
go-plugin est un framework pour implémenter des architectures de plugins où les extensions s'exécutent en tant que processus séparés et communiquent via un système de plugin Go RPC. Il fonctionne comme une bibliothèque de communication inter-processus et un gestionnaire de cycle de vie qui permet aux applications hôtes de découvrir, lancer et surveiller des plugins binaires externes. Le framework permet des systèmes de plugins multi-langages, permettant aux plugins écrits dans différents langages de s'intégrer à un hôte via des protocoles RPC standardisés. Il dispose d'un pont RPC bidirectionnel qui permet à la fois à l'hôte et au plugin d'échanger des implémentations d'interface pour des échanges de données complexes et des rappels. Le système fournit une isolation de processus en exécutant les plugins en tant que sous-processus indépendants, garantissant que les plantages de plugins ne terminent pas l'application hôte. Il couvre la sécurité via l'authentification TLS mutuelle et la vérification d'intégrité, ainsi que l'orchestration du cycle de vie, y compris le rattachement de processus avec état pour maintenir la connectivité lors des mises à niveau de l'hôte. Les capacités supplémentaires incluent la découverte binaire, le versionnage de protocole et la synchronisation des journaux et flux de sortie des plugins vers l'hôte.
Executes plugins as independent operating system processes to ensure plugin crashes do not terminate the host application.
Dynamic-load-apk is an Android plugin framework that enables a host application to load and run uninstalled APK files as plugins at runtime. It provides the core infrastructure for loading APKs from storage, launching their activities, and managing their lifecycle without requiring the user to install them through the system package manager. The framework handles the fundamental challenges of running uninstalled code on Android through several key mechanisms. It isolates plugin classes in a separate DexClassLoader to prevent conflicts with the host class hierarchy, merges plugin resources int
Isolates plugin classes in a dedicated DexClassLoader to prevent conflicts with the host class hierarchy.
btrace est un outil de traçage dynamique et un profileur de performance JVM utilisé pour injecter des scripts d'instrumentation sécurisés dans une machine virtuelle Java en cours d'exécution sans nécessiter de redémarrage du processus. Il fonctionne comme un framework d'agent Java et un serveur de protocole de contexte de modèle (Model Context Protocol), exposant les opérations de diagnostic JVM et les outils de traçage aux grands modèles de langage et aux assistants IA. Le projet se distingue en permettant l'injection de code en temps réel et l'instrumentation au niveau du bytecode via un protocole binaire sécurisé. Il garantit la stabilité en production grâce à un moteur d'analyse de sécurité statique qui bloque les modèles de code instables, tels que les boucles et les allocations, pendant la phase de compilation du script. Le système couvre un large éventail de capacités d'observabilité, notamment le traçage de l'exécution des méthodes, le suivi de l'allocation d'objets et la surveillance de l'accès aux champs. Il fournit un profilage des performances via des métriques de latence et l'échantillonnage des données d'exécution, et peut émettre des événements Java Flight Recorder personnalisés pour une analyse native. L'agent prend en charge des stratégies de déploiement flexibles, notamment le démarrage au lancement ou l'attachement à des processus en direct dans des environnements conteneurisés à l'aide de bundles fat JAR.
Uses isolated Java class loaders to prevent dependency conflicts between tracing extensions and the target application.
Scrypted is a video integration platform that connects IP cameras and NVRs into smart home ecosystems such as HomeKit, Google Home, Alexa, and Home Assistant. It functions as both an NVR software for recording and playing back continuous video footage, and an object detection engine that analyzes live camera feeds to identify motion, people, vehicles, and other objects. The platform distinguishes itself through its ability to transcode and forward live camera streams to multiple smart home platforms simultaneously, enabling unified viewing and control across all connected devices. It includes
Runs third-party plugins in separate OS processes to prevent crashes from affecting the core system.
Maven est un outil d'automatisation de build Java et un orchestrateur de build logiciel. Il fonctionne comme un gestionnaire de cycle de vie de projet et un système de gestion des dépendances, utilisant un modèle d'objet de projet (POM) standardisé pour compiler, tester et packager les projets Java. Le projet se distingue par un cycle de vie de build basé sur des phases et un modèle d'extension par plugins, permettant aux utilisateurs de lier des objectifs personnalisés à des étapes de build spécifiques. Il coordonne des logiciels complexes via l'orchestration de projets multi-modules et assure un workflow de build reproductible en neutralisant les variables d'environnement et en contrôlant les versions de la chaîne d'outils. Ses capacités couvrent une gestion complète des dépendances, incluant la résolution des dépendances transitives et la publication d'artefacts vers des dépôts distants. Le système fournit également la génération de projets via des templates et la génération de documentation détaillée pour produire des références API et des sites de projet. L'outil inclut une interface en ligne de commande avec auto-complétion et prend en charge l'exécution de build hors ligne en utilisant un cache d'artefacts local.
Implements a dedicated classloader hierarchy for plugins to prevent version conflicts with the core runtime and other dependencies.
Sofa-boot est un framework d'application Java modulaire et une extension Spring Boot conçue pour isoler les modules d'application dans des contextes d'exécution séparés. Il fournit un orchestrateur de services JVM pour publier et référencer des services internes et une couche d'intégration de middleware d'entreprise pour déployer des starters middleware autonomes. Le framework évite les conflits de beans, de configuration et de version de dépendances en utilisant des chargeurs de classes indépendants et un arbre hiérarchique de contextes d'exécution distincts. Il optimise les temps de démarrage des applications d'entreprise en chargeant les modules indépendants en parallèle et en initialisant les composants de manière asynchrone. Le système inclut un vérificateur de préparation d'application qui bloque le trafic réseau externe et l'enregistrement de services jusqu'à ce que tous les composants soient entièrement initialisés. Il gère également l'orchestration de services en convertissant la communication interne des modules en appels de services distants et découple les flux de journalisation du middleware et du SDK des logs principaux de l'application.
Prevents dependency version conflicts by loading separate modules via independent classloaders and a shared index.
Powermock est un framework de mocking Java et un outil de test unitaire qui utilise la manipulation de bytecode pour mocker des méthodes statiques, des classes finales et des constructeurs privés. Il inclut un outil d'instrumentation d'agent Java et un utilitaire de test basé sur la réflexion pour contourner l'encapsulation et modifier le comportement des classes à l'exécution. Le projet se distingue en offrant la capacité d'intercepter l'instanciation d'objets via le mot-clé new et de simuler le comportement des classes système Java de base et des méthodes natives. Il peut outrepasser les modificateurs finaux sur les classes et les méthodes et contourner les restrictions de signature pour les classes contenues dans des archives signées. La boîte à outils couvre de vastes domaines de capacités, incluant le mocking de membres privés, la vérification de la construction d'objets et la suppression des initialiseurs et constructeurs statiques. Il fournit également des utilitaires de réflexion pour la gestion de l'état privé et s'intègre à JUnit via des règles et des exécuteurs spécialisés. L'intégration est prise en charge pour les architectures modulaires telles qu'OSGi et divers frameworks d'exécution de tests externes.
Prevents specific packages from being loaded by the custom classloader to avoid environment conflicts.
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.
Supports loading multiple copies of the same plugin using unique tags to isolate configurations or data stores.
Oncall is an incident response management platform designed to coordinate alert routing, on-call scheduling, and incident resolution workflows. It functions as an alert routing and escalation engine that directs notifications to responders using rule-based deduplication and conditional escalation policies. The system includes a multi-channel notification gateway for delivering urgent alerts via SMS, push notifications, and chat platforms, featuring the ability to bypass device silence settings. It also serves as an on-call scheduling system that manages team rotations and availability through
Runs extension code in separate JavaScript contexts to prevent third-party logic from interfering with the core system.
Yabridge is a compatibility bridge that allows Windows audio plugins to run within Linux digital audio workstations. It utilizes a Wine-based wrapper to translate audio processing and plugin calls from Windows plugins to Linux hosts, supporting both VST2 and VST3 standards. The system manages the execution of both 32-bit and 64-bit Windows plugins on Linux. It includes specialized mechanisms to handle window scaling, input focus, and the transfer of data through cross-environment drag-and-drop between native Linux applications and Windows plugins. The project provides tools for environment i
Hosts multiple plugin instances within a single process to reduce CPU and memory overhead.