15 Repos
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 15 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 ist ein Framework zur Implementierung von Plugin-Architekturen, bei denen Erweiterungen als separate Prozesse ausgeführt werden und über ein Go-RPC-Plugin-System kommunizieren. Es fungiert als Inter-Process-Communication-Bibliothek und Lebenszyklus-Manager, der es Host-Anwendungen ermöglicht, externe binäre Plugins zu entdecken, zu starten und zu überwachen. Das Framework ermöglicht sprachübergreifende Plugin-Systeme, wodurch Plugins, die in verschiedenen Sprachen geschrieben wurden, über standardisierte RPC-Protokolle in einen Host integriert werden können. Es verfügt über eine bidirektionale RPC-Brücke, die es sowohl dem Host als auch dem Plugin ermöglicht, Schnittstellenimplementierungen für komplexen Datenaustausch und Callbacks auszutauschen. Das System bietet Prozessisolierung durch die Ausführung von Plugins als unabhängige Subprozesse, wodurch sichergestellt wird, dass Plugin-Abstürze die Host-Anwendung nicht beenden. Es deckt Sicherheit durch gegenseitige TLS-Authentifizierung und Integritätsprüfung ab sowie Lebenszyklus-Orchestrierung, einschließlich zustandsbehafteter Prozess-Wiederanbindung, um die Konnektivität während Host-Upgrades aufrechtzuerhalten. Zusätzliche Funktionen umfassen binäre Entdeckung, Protokoll-Versionierung und die Synchronisation von Plugin-Logs und Output-Streams zurück zum Host.
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
Runs plugin APKs in their own Linux process to sandbox memory, threads, and system resources.
btrace ist ein JVM-Tool für dynamisches Tracing und Performance-Profiling, das zum Injizieren sicherer Instrumentierungsskripte in eine laufende Java Virtual Machine verwendet wird, ohne dass ein Prozessneustart erforderlich ist. Es fungiert als Java-Agent-Framework und als Model Context Protocol-Server, der JVM-Diagnoseoperationen und Tracing-Tools für Large Language Models und KI-Assistenten bereitstellt. Das Projekt zeichnet sich durch die Ermöglichung von Echtzeit-Code-Injektion und Bytecode-Level-Instrumentierung über ein sicheres binäres Protokoll aus. Es stellt die Produktionsstabilität durch eine statische Sicherheitsanalyse-Engine sicher, die instabile Codemuster, wie Schleifen und Allokationen, während der Skript-Kompilierungsphase blockiert. Das System deckt ein breites Spektrum an Observability-Funktionen ab, einschließlich Methoden-Ausführungs-Tracing, Objekt-Allokations-Tracking und Field-Access-Monitoring. Es bietet Performance-Profiling durch Latenzmetriken und Ausführungsdaten-Sampling und kann benutzerdefinierte Java Flight Recorder-Events für native Analysen ausgeben. Der Agent unterstützt flexible Bereitstellungsstrategien, einschließlich Bootstrapping beim Start oder das Anhängen an Live-Prozesse in containerisierten Umgebungen mittels Fat-JAR-Bundles.
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 ist ein Java-Build-Automatisierungstool und Software-Build-Orchestrator. Es fungiert als Projekt-Lifecycle-Manager und Dependency-Management-System, das ein standardisiertes Project Object Model verwendet, um Java-Projekte zu kompilieren, zu testen und zu paketieren. Das Projekt zeichnet sich durch einen phasenbasierten Build-Lifecycle und ein Plugin-basiertes Erweiterungsmodell aus, das es Benutzern ermöglicht, benutzerdefinierte Ziele an spezifische Build-Stufen zu binden. Es koordiniert komplexe Software durch Multi-Modul-Projekt-Orchestrierung und stellt einen reproduzierbaren Build-Workflow sicher, indem Umgebungsvariablen neutralisiert und Toolchain-Versionen kontrolliert werden. Die Funktionen decken ein umfassendes Dependency-Management ab, einschließlich transitiver Dependency-Auflösung und Artefakt-Publishing in Remote-Repositories. Das System bietet zudem Projektgenerierung durch Templates und detaillierte Dokumentationserstellung für API-Referenzen und Projektseiten. Das Tool enthält ein Command-Line-Interface mit Eingabevervollständigung und unterstützt die Offline-Build-Ausführung mittels eines lokalen Artefakt-Caches.
Implements a dedicated classloader hierarchy for plugins to prevent version conflicts with the core runtime and other dependencies.
Sofa-boot ist ein modulares Java-Anwendungsframework und eine Spring Boot-Erweiterung, die entwickelt wurde, um Anwendungsmodule in getrennte Ausführungskontexte zu isolieren. Es bietet einen JVM-Service-Orchestrator zum Veröffentlichen und Referenzieren interner Dienste sowie eine Integrationsschicht für Unternehmens-Middleware zur Bereitstellung in sich geschlossener Middleware-Starter. Das Framework verhindert Bean-, Konfigurations- und Abhängigkeitsversionskonflikte durch die Verwendung unabhängiger Classloader und eines hierarchischen Baums distinkter Ausführungskontexte. Es optimiert die Startzeiten von Unternehmensanwendungen, indem unabhängige Module parallel geladen und Komponenten asynchron initialisiert werden. Das System enthält einen Verifizierer für die Anwendungsbereitschaft, der externen Netzwerkverkehr und die Dienstregistrierung blockiert, bis alle Komponenten vollständig initialisiert sind. Es verwaltet zudem die Service-Orchestrierung, indem es interne Modulkommunikation in Remote-Service-Aufrufe umwandelt und Middleware- sowie SDK-Logging-Streams von den primären Anwendungsprotokollen entkoppelt.
Prevents dependency version conflicts by loading separate modules via independent classloaders and a shared index.
Powermock ist ein Java-Mocking-Framework und Unit-Testing-Tool, das Bytecode-Manipulation verwendet, um statische Methoden, finale Klassen und private Konstruktoren zu mocken. Es beinhaltet ein Java-Agent-Instrumentierungstool und ein auf Reflection basierendes Test-Utility, um die Kapselung zu umgehen und das Klassenverhalten zur Laufzeit zu modifizieren. Das Projekt zeichnet sich dadurch aus, dass es die Möglichkeit bietet, die Instanziierung von Objekten über das new-Keyword abzufangen und das Verhalten von Java-Systemklassen und nativen Methoden zu simulieren. Es kann finale Modifikatoren auf Klassen und Methoden überschreiben und Signaturbeschränkungen für Klassen umgehen, die in signierten Archiven enthalten sind. Das Toolset deckt breite Funktionsbereiche ab, einschließlich des Mockings privater Member, der Verifizierung von Objektkonstruktionen und der Unterdrückung statischer Initialisierer und Konstruktoren. Es bietet zudem Reflection-Utilities für das Management privater Zustände und integriert sich über spezialisierte Rules und Runner in JUnit. Die Integration wird für modulare Architekturen wie OSGi und verschiedene externe Test-Execution-Frameworks unterstützt.
Prevents specific packages from being loaded by the custom classloader to avoid environment conflicts.
Seneca ist ein nachrichtengetriebenes Architektur-Framework und Microservices-Toolkit für Node.js. Es fungiert als verteilter Task-Orchestrator und musterbasierter Nachrichten-Router, der es Entwicklern ermöglicht, Systeme aus entkoppelten Diensten zu erstellen, die über einen Message-Bus kommunizieren. Das Framework zeichnet sich durch ein modulares Plugin-System aus, das Geschäftslogik in wiederverwendbare, konfigurierbare Module organisiert. Es unterstützt dynamische Aktionserweiterungen, wodurch neue Handler bestehende Aktionsmuster umschließen oder überschreiben können, um benutzerdefinierte Logik zu injizieren, ohne den ursprünglichen Code zu ändern. Das System deckt ein breites Spektrum an Funktionen ab, einschließlich verteilter Dienstkommunikation, asynchroner Aktionsorchestrierung und Entity-Datenverwaltung. Es bietet zudem Observability-Tools für das Tracing von Aktionsmustern, webbasierte Log-Visualisierung und Qualitätssicherungstools für das Mocking von Dienstabhängigkeiten.
Supports loading multiple copies of the same plugin using unique tags to isolate configurations or data stores.
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.