15 مستودعات
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 هو إطار عمل لتنفيذ معماريات الإضافات حيث تعمل الامتدادات كعمليات منفصلة وتتواصل عبر نظام إضافات Go RPC. يعمل كمكتبة اتصال بين العمليات ومدير دورة حياة يسمح للتطبيقات المضيفة باكتشاف وتشغيل ومراقبة الإضافات الثنائية الخارجية. يتيح إطار العمل أنظمة إضافات عبر اللغات، مما يسمح للإضافات المكتوبة بلغات مختلفة بالتكامل مع مضيف من خلال بروتوكولات RPC موحدة. يتميز بجسر RPC ثنائي الاتجاه يسمح لكل من المضيف والإضافة بتبادل تنفيذات الواجهة لتبادل البيانات المعقد والمعاودة. يوفر النظام عزل العمليات عن طريق تنفيذ الإضافات كعمليات فرعية مستقلة، مما يضمن أن أعطال الإضافات لا تنهي التطبيق المضيف. يغطي الأمان من خلال مصادقة TLS المتبادلة والتحقق من السلامة، بالإضافة إلى تنسيق دورة الحياة بما في ذلك إعادة إرفاق العملية ذات الحالة للحفاظ على الاتصال أثناء ترقيات المضيف. تشمل القدرات الإضافية اكتشاف الثنائيات، وإصدار البروتوكول، ومزامنة سجلات الإضافة وتدفقات المخرجات مرة أخرى إلى المضيف.
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 هي أداة تتبع ديناميكية ومحلل أداء لـ JVM تُستخدم لحقن نصوص برمجية آمنة للقياس في جهاز Java الافتراضي قيد التشغيل دون الحاجة إلى إعادة تشغيل العملية. تعمل كإطار عمل لوكيل Java وخادم بروتوكول سياق النموذج (Model Context Protocol)، مما يعرض عمليات تشخيص JVM وأدوات التتبع لنماذج اللغات الكبيرة ومساعدي الذكاء الاصطناعي. يتميز المشروع بتمكين حقن الكود في الوقت الفعلي والقياس على مستوى البايت كود عبر بروتوكول ثنائي آمن. ويضمن استقرار الإنتاج من خلال محرك تحليل أمان ثابت يحظر أنماط الكود غير المستقرة، مثل الحلقات والتخصيصات، أثناء مرحلة تجميع النص البرمجي. يغطي النظام مجموعة واسعة من قدرات المراقبة، بما في ذلك تتبع تنفيذ الأساليب، وتتبع تخصيص الكائنات، ومراقبة الوصول إلى الحقول. كما يوفر تحليل الأداء عبر مقاييس التأخير وأخذ عينات بيانات التنفيذ، ويمكنه إصدار أحداث Java Flight Recorder مخصصة للتحليل الأصلي. يدعم الوكيل استراتيجيات نشر مرنة، بما في ذلك التمهيد عند بدء التشغيل أو الإرفاق بالعمليات الحية في البيئات الحاوية باستخدام حزم 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 هي أداة لأتمتة بناء مشاريع Java ومنسق لبناء البرمجيات. تعمل كمدير لدورة حياة المشروع ونظام لإدارة التبعيات، باستخدام نموذج كائن مشروع موحد لتجميع واختبار وتغليف مشاريع Java. يتميز المشروع بدورة حياة بناء قائمة على المراحل ونموذج توسعة قائم على الإضافات، مما يسمح للمستخدمين بربط أهداف مخصصة بمراحل بناء محددة. ينسق البرمجيات المعقدة من خلال إدارة المشاريع متعددة الوحدات ويضمن سير عمل بناء قابل للتكرار عن طريق تحييد متغيرات البيئة والتحكم في إصدارات سلسلة الأدوات. تغطي إمكانياته إدارة شاملة للتبعيات، بما في ذلك حل التبعيات المتعدية ونشر القطع البرمجية (artifacts) إلى مستودعات بعيدة. يوفر النظام أيضاً إنشاء المشاريع من خلال القوالب وإنشاء وثائق مفصلة لإنتاج مراجع واجهات برمجة التطبيقات ومواقع المشاريع. تتضمن الأداة واجهة سطر أوامر مع إكمال المدخلات وتدعم تنفيذ البناء دون اتصال باستخدام ذاكرة تخزين مؤقت محلية للقطع البرمجية.
Implements a dedicated classloader hierarchy for plugins to prevent version conflicts with the core runtime and other dependencies.
Sofa-boot هو إطار عمل لتطبيقات Java المعيارية وامتداد لـ Spring Boot مصمم لعزل وحدات التطبيق في سياقات تنفيذ منفصلة. يوفر منسق خدمة JVM لنشر ومرجعية الخدمات الداخلية وطبقة دمج برمجيات وسيطة للمؤسسات لنشر مبادرات البرمجيات الوسيطة المستقلة. يمنع إطار العمل تعارضات الفاصوليا (Beans)، والتكوين، وإصدار التبعيات باستخدام محملات فئات مستقلة وشجرة هرمية من سياقات التنفيذ المتميزة. يعمل على تحسين أوقات بدء تشغيل تطبيقات المؤسسات من خلال تحميل الوحدات المستقلة بالتوازي وتهيئة المكونات بشكل غير متزامن. يتضمن النظام محققاً لجاهزية التطبيق يحظر حركة مرور الشبكة الخارجية وتسجيل الخدمة حتى يتم تهيئة جميع المكونات بالكامل. كما يدير تنسيق الخدمة عن طريق تحويل اتصالات الوحدات الداخلية إلى استدعاءات خدمة عن بُعد ويفصل تدفقات تسجيل البرمجيات الوسيطة و SDK عن سجلات التطبيق الأساسية.
Prevents dependency version conflicts by loading separate modules via independent classloaders and a shared index.
Powermock هو إطار عمل Java للمحاكاة (mocking) وأداة لاختبار الوحدات تستخدم معالجة البايت كود (bytecode) لمحاكاة الطرق الثابتة، والفئات النهائية (final classes)، والمشيدات الخاصة (private constructors). يتضمن أداة قياس وكيل Java وأداة اختبار تعتمد على الانعكاس (reflection) لتجاوز التغليف وتعديل سلوك الفئة في وقت التشغيل. يتميز المشروع بتوفير القدرة على اعتراض إنشاء الكائنات عبر الكلمة الأساسية new ومحاكاة سلوك فئات نظام Java الأساسية والطرق الأصلية. يمكنه تجاوز معدلات final على الفئات والطرق وتجاوز قيود التوقيع للفئات الموجودة داخل الأرشيفات الموقعة. تغطي مجموعة الأدوات مجالات قدرة واسعة بما في ذلك محاكاة الأعضاء الخاصين، والتحقق من إنشاء الكائنات، وقمع المشيدات والمشيدات الثابتة. كما توفر أدوات انعكاس لإدارة الحالة الخاصة وتتكامل مع JUnit من خلال قواعد ومشغلات متخصصة. يتم دعم التكامل للمعماريات المعيارية مثل OSGi وأطر تنفيذ الاختبارات الخارجية المختلفة.
Prevents specific packages from being loaded by the custom classloader to avoid environment conflicts.
Seneca هو إطار عمل بنية قائمة على الرسائل ومجموعة أدوات للخدمات المصغرة لـ Node.js. يعمل كمنسق مهام موزع وموجه رسائل قائم على الأنماط، مما يسمح للمطورين ببناء أنظمة من الخدمات المنفصلة التي تتواصل عبر ناقل رسائل. يتميز إطار العمل بنظام إضافات معياري ينظم منطق العمل في وحدات قابلة لإعادة الاستخدام وقابلة للتكوين. ويدعم امتدادات الإجراءات الديناميكية، مما يتيح للمعالجات الجديدة تغليف أو تجاوز أنماط الإجراءات الحالية لحقن منطق مخصص دون تعديل الكود الأصلي. يغطي النظام مجموعة واسعة من القدرات بما في ذلك اتصالات الخدمة الموزعة، وتنسيق الإجراءات غير المتزامن، وإدارة بيانات الكيانات. كما يوفر أدوات مراقبة لتتبع أنماط الإجراءات، وتصور السجلات المستند إلى الويب، وأدوات ضمان الجودة لمحاكاة تبعيات الخدمة.
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.