15 repository-uri
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 is a framework for implementing plugin architectures where extensions run as separate processes and communicate via a Go RPC plugin system. It functions as an inter-process communication library and lifecycle manager that allows host applications to discover, launch, and monitor external binary plugins. The framework enables cross-language plugin systems, allowing plugins written in different languages to integrate with a host through standardized RPC protocols. It features a bidirectional RPC bridge that allows both the host and the plugin to exchange interface implementations for
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 este un instrument de tracing dinamic și profiler de performanță pentru JVM, utilizat pentru injectarea scripturilor de instrumentare sigure într-o mașină virtuală Java care rulează, fără a necesita repornirea procesului. Acesta funcționează ca un framework de agent Java și un server Model Context Protocol, expunând operațiunile de diagnosticare JVM și instrumentele de tracing către modelele de limbaj mari și asistenții AI. Proiectul se distinge prin activarea injectării de cod în timp real și a instrumentării la nivel de bytecode printr-un protocol binar securizat. Asigură stabilitatea în producție printr-un motor de analiză statică de siguranță care blochează modelele de cod instabile, cum ar fi buclele și alocările, în timpul fazei de compilare a scriptului. Sistemul acoperă o gamă largă de capabilități de observabilitate, inclusiv tracing-ul execuției metodelor, urmărirea alocării obiectelor și monitorizarea accesului la câmpuri. Oferă profilarea performanței prin metrici de latență și eșantionarea datelor de execuție și poate emite evenimente personalizate Java Flight Recorder pentru analiză nativă. Agentul suportă strategii de implementare flexibile, inclusiv bootstrapping la pornire sau atașarea la procese live în medii containerizate folosind pachete 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 este un instrument de automatizare a build-ului Java și un orchestrator de build software. Funcționează ca un manager de ciclu de viață al proiectului și sistem de gestionare a dependențelor, folosind un model de obiect al proiectului (POM) standardizat pentru a compila, testa și împacheta proiecte Java. Proiectul se distinge printr-un ciclu de viață al build-ului bazat pe faze și un model de extensie bazat pe plugin-uri, permițând utilizatorilor să lege obiective personalizate de etape specifice ale build-ului. Coordonează software-ul complex prin orchestrarea proiectelor multi-modul și asigură un flux de lucru reproductibil prin neutralizarea variabilelor de mediu și controlul versiunilor de toolchain. Capabilitățile sale acoperă gestionarea cuprinzătoare a dependențelor, inclusiv rezolvarea dependențelor tranzitive și publicarea artefactelor în repository-uri remote. Sistemul oferă, de asemenea, generarea de proiecte prin template-uri și generarea de documentație detaliată pentru producerea referințelor API și a site-urilor de proiect. Instrumentul include o interfață de linie de comandă (CLI) cu completare automată și suportă execuția build-ului offline folosind un cache local de artefacte.
Implements a dedicated classloader hierarchy for plugins to prevent version conflicts with the core runtime and other dependencies.
Sofa-boot este un framework de aplicații Java modular și o extensie Spring Boot concepută pentru a izola modulele aplicației în contexte de execuție separate. Oferă un orchestrator de servicii JVM pentru publicarea și referențierea serviciilor interne și un strat de integrare middleware enterprise pentru implementarea de „starters” middleware auto-conținute. Framework-ul previne conflictele de bean-uri, configurații și versiuni de dependențe prin utilizarea unor classloadere independente și a unui arbore ierarhic de contexte de execuție distincte. Optimizează timpii de pornire a aplicațiilor enterprise prin încărcarea modulelor independente în paralel și inițializarea componentelor în mod asincron. Sistemul include un verificator de disponibilitate a aplicației care blochează traficul de rețea extern și înregistrarea serviciilor până când toate componentele sunt complet inițializate. De asemenea, gestionează orchestrarea serviciilor prin convertirea comunicării interne a modulelor în apeluri de servicii la distanță și decuplează fluxurile de logare ale middleware-ului și SDK-ului de log-urile primare ale aplicației.
Prevents dependency version conflicts by loading separate modules via independent classloaders and a shared index.
Powermock este un framework de mocking Java și un instrument de testare unitară care utilizează manipularea bytecode-ului pentru a simula (mock) metode statice, clase finale și constructori privați. Include un instrument de instrumentare Java agent și un utilitar de testare bazat pe reflexie pentru a ocoli încapsularea și a modifica comportamentul claselor la runtime. Proiectul se distinge prin capacitatea de a intercepta instanțierea obiectelor prin cuvântul cheie new și de a simula comportamentul claselor de sistem Java de bază și al metodelor native. Poate suprascrie modificatorii final pe clase și metode și poate ocoli restricțiile de semnătură pentru clasele conținute în arhive semnate. Setul de instrumente acoperă domenii largi de capabilități, inclusiv mocking-ul membrilor privați, verificarea construcției obiectelor și suprimarea inițializatorilor și constructorilor statici. Oferă, de asemenea, utilitare de reflexie pentru gestionarea stării private și se integrează cu JUnit prin reguli și runneri specializați. Integrarea este suportată pentru arhitecturi modulare precum OSGi și diverse framework-uri externe de execuție a testelor.
Prevents specific packages from being loaded by the custom classloader to avoid environment conflicts.
Seneca is a message-driven architecture framework and microservices toolkit for Node.js. It functions as a distributed task orchestrator and pattern-based message router, allowing developers to build systems of decoupled services that communicate via a message bus. The framework distinguishes itself through a modular plugin system that organizes business logic into reusable, configurable modules. It supports dynamic action extensions, enabling new handlers to wrap or override existing action patterns to inject custom logic without modifying original code. The system covers a broad range of c
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.