27 dépôts
Architectural components for managing lifecycles and communication between multiple processes.
Distinguishing note: Focuses on inter-process coordination, distinct from simple process spawning.
Explore 27 awesome GitHub repositories matching software engineering & architecture · Process Coordinators. Refine with filters or upvote what's useful.
Servo is a high-performance, memory-safe web rendering engine designed for cross-platform embedding. It provides a modular framework that allows developers to integrate web content rendering into native applications across desktop, mobile, and embedded systems. By enforcing strict process isolation and memory safety, the engine creates a secure execution environment for processing web content. The engine distinguishes itself through a task-based, parallelized architecture that decouples layout, style, and rendering processes to maximize responsiveness. It utilizes a hardware-abstracted graphi
Manages web content processes and frame lifecycles using a centralized thread that coordinates communication.
This project is a reactive, offline-first NoSQL database engine designed for JavaScript applications. It provides a robust framework for managing application state by synchronizing data across browsers, mobile devices, and server-side runtimes. By treating local storage as the primary source of truth, it enables applications to remain functional without network connectivity, automatically reconciling changes with remote backends once a connection is restored. The database distinguishes itself through a modular architecture that supports cross-environment synchronization and high-performance d
Manages concurrent read and write operations across multiple processes to prevent data corruption.
Presto is a distributed SQL query engine designed for high-performance analytical processing across heterogeneous data sources. It functions as a data federation platform and massively parallel processing engine, allowing users to execute interactive queries against diverse storage systems without requiring data migration. By mapping remote metadata and structures to a unified relational namespace, it enables seamless cross-platform analysis through a standard SQL interface. The engine distinguishes itself through a pluggable connector architecture and a shared-nothing distributed processing
Deploys native sidecar processes to provide the cluster coordinator with specialized worker information and custom configuration capabilities.
Proton GE Custom is a compatibility layer designed to execute Windows games on Linux by translating binary instructions and API calls. It focuses on improving game stability and performance through a Wine-based translation system. The project utilizes custom patches and per-game configuration overrides to resolve specific application crashes and glitches. It implements specialized media foundation patching to ensure stable playback of proprietary cinematic formats and adds support for High Dynamic Range output. The software covers a range of gaming optimizations, including raw input latency
Synchronizes in-process execution primitives via a kernel module to increase system stability.
Firefox is a cross-platform web browser engine designed to render web content, execute JavaScript, and manage secure browsing sessions. It utilizes a multi-process isolation architecture that distributes browser tasks across independent operating system processes to ensure stability and prevent site-specific failures from impacting the entire application. The engine incorporates a sandboxed execution environment to restrict web content and untrusted scripts to isolated memory compartments, enforcing security policies that prevent unauthorized access to system resources. The project distinguis
Coordinates state and messaging between different browser processes to ensure consistent behavior.
This repository is a comprehensive collection of reference implementations and sample libraries for the Universal Windows Platform. It provides practical examples of how to use Windows Runtime APIs to build cross-device applications, including detailed guidance on XAML-based declarative user interfaces and DirectX-integrated rendering. The project distinguishes itself by providing a wide array of hardware integration suites, covering low-level communication with USB, Serial, I2C, SPI, and GPIO peripherals. It includes specialized implementations for mixed reality holographic rendering, advanc
Implements architectural components for managing communication and data exchange between multiple applications.
POCO is a comprehensive C++ application framework that provides a cross-platform set of libraries for building network-centric applications. It offers a unified abstraction layer that wraps platform-specific APIs, enabling the same code to run across desktop, server, mobile, IoT, and embedded systems. The framework is organized into modular libraries that can be compiled and linked selectively, allowing developers to include only the components their application needs. The framework distinguishes itself through its broad coverage of application infrastructure needs, including threading and sy
Provides threading primitives, mutexes, events, and semaphores for coordinating concurrent execution.
Concurrently is a Node.js process manager and concurrent process runner designed to execute multiple shell commands simultaneously within a single terminal session. It provides core primitives for managing the lifecycles of child processes, coordinating parallel tasks, and establishing communication bridges to exchange data between parent and child processes. The tool features an ANSI terminal output formatter that styles process logs using custom prefixes, timestamps, and colors to differentiate between multiple output streams. It includes utilities for detecting terminal color depth and con
Automatically terminates active sibling processes based on the exit status of a related command.
This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core operating system concepts of process management through the fork-exec-wait model, dynamic memory allocation using implicit free list heap allocators, inode-based file systems, inter-process communication via pipes and shared memory, POSIX threads with synchronization primitives, signal-based asynchronous notification, virtual memory with page table translation, and runtime diagnostics using Valgrind and GDB. The textbook distinguishes itself by providing practical, implementation
Teaches mutex, semaphore, and condition variable usage for coordinating concurrent threads.
seL4 is a formally verified microkernel whose C implementation is backed by machine-checked mathematical proofs of correctness, confidentiality, integrity, and availability. It enforces strict isolation between processes through hardware-enforced address space separation and a capability-based access control system, where each process holds explicit rights only to the resources it has been granted. The kernel exposes hardware resources through a minimal API of system calls that manage threads, address spaces, and inter-process communication, with synchronous IPC supporting sender-identifying b
Uses mutexes, semaphores, and binary semaphores for mutual exclusion and coordination among component threads.
This project provides a comprehensive technical guide and framework for engineering large-scale machine learning systems. It covers the full lifecycle of model development, focusing on the infrastructure and computational principles required to build, train, and serve generative AI models across distributed GPU clusters. The repository distinguishes itself by offering deep-dive tutorials and implementation strategies for complex system challenges. It emphasizes high-performance architectural primitives, such as collective communication orchestration, distributed tensor sharding, and static gr
Coordinates distributed processes via remote procedure calls to synchronize state and trigger collective actions.
Ce projet est une ressource de découverte open source qui fournit des listes organisées de code réutilisable et de bibliothèques pour aider les développeurs à trouver des solutions techniques à des tâches spécifiques. Il utilise un système d'indexation par catégories pour organiser divers outils logiciels selon leurs capacités fonctionnelles. Le dépôt est structuré comme une collection de documentation basée sur Markdown et de contenu statique, servant de répertoire pour la découverte manuelle et la référence. Le répertoire couvre un large éventail de domaines de compétences, incluant le développement d'applications multiplateformes, la création d'outils de cybersécurité, l'implémentation de protocoles réseau et les flux de travail en calcul scientifique. Il inclut également des ressources pour l'automatisation du web scraping, le stockage de données et les interfaces multimédias.
Lists primitives for coordinating execution flow and sharing memory between concurrent threads and processes.
Ce projet est une collection de bibliothèques single-header fournissant une implémentation sans dépendance des systèmes fondamentaux de moteur de jeu. Il sert de boîte à outils portable pour le développement de jeux 2D, se concentrant sur le chargement d'assets, l'optimisation graphique et la coordination système de bas niveau. Les bibliothèques offrent des capacités spécialisées pour le rendu de sprites 2D et le traitement d'assets, incluant la compilation d'atlas de textures et le rendu par lots pour réduire les draw calls. Il inclut un pipeline dédié pour analyser les fichiers Aseprite et les données de carte au format JSON provenant de Tiled. La boîte à outils couvre plusieurs domaines fonctionnels, incluant la détection de collision 2D utilisant des raycasts et des sweep tests, le streaming audio et le déclenchement d'échantillons, et la coordination multithreading via des pools de tâches. Sa couche réseau implémente la fiabilité basée sur UDP et le transport chiffré TLS pour une communication client-serveur sécurisée.
Implements multithreading coordination via task pools and locks to balance processor load.
Ce projet est un programme éducatif complet et un framework de deep learning conçu pour enseigner le deep learning pratique avec PyTorch via des notebooks et des exemples de code. Il sert de bibliothèque de haut niveau pour construire, entraîner et déployer des réseaux de neurones, agissant comme un orchestrateur d'entraînement de modèles qui coordonne les modèles PyTorch, les optimiseurs et les fonctions de perte. Le projet fournit des boîtes à outils spécialisées pour la vision par ordinateur, le traitement du langage naturel et le prétraitement de données tabulaires. Il se distingue par des contrôles d'entraînement avancés tels que des taux d'apprentissage discriminatifs, un système de callback bidirectionnel pour personnaliser la logique d'entraînement, et une abstraction de haut niveau qui automatise le placement sur périphérique et les boucles d'entraînement. Le framework couvre une large surface de capacités, y compris la construction automatisée de pipelines de données, l'analyse d'architecture de modèles et l'évaluation des performances sur des tâches de classification, de régression et de segmentation. Il inclut également des utilitaires pour l'entraînement distribué sur plusieurs GPU, l'entraînement en précision mixte pour l'optimisation de la mémoire, et un support spécialisé pour les données d'imagerie médicale. Le projet est livré sous forme d'une série de Jupyter Notebooks.
fastai ensures specific tasks run only once on a primary process before executing across parallel workers.
Asterinas est un noyau de système d'exploitation sécurisé en mémoire conçu pour prévenir les data races et la corruption mémoire. Il fonctionne comme un noyau compatible Linux-ABI, permettant l'exécution de binaires Linux existants et de charges de travail conteneurisées tout en offrant un modèle de distribution de système d'exploitation déclaratif. Le projet se distingue en agissant comme un hôte de conteneurs pour machines virtuelles et un OS invité pour le confidential computing, lui permettant de s'exécuter au sein d'environnements d'exécution isolés matériellement comme Intel TDX. Il implémente une base de calcul de confiance minimale en isolant les opérations dangereuses de bas niveau et sépare les mécanismes fondamentaux du noyau des implémentations de politiques spécifiques. Le système couvre un large éventail de capacités, incluant la gestion de la mémoire physique et virtuelle, le multi-processing symétrique et l'abstraction matérielle pour diverses architectures CPU. Il inclut également le support pour les runtimes de conteneurs sécurisés, un ensemble complet de primitives réseau et socket, ainsi qu'une toolchain spécialisée pour la compilation et l'émulation du noyau. Le projet prend en charge le déploiement multi-architecture sur les plateformes x86-64, RISC-V 64 et LoongArch 64.
Implements primitives for coordinating execution flow and sharing memory between concurrent execution units to prevent data races.
Cette bibliothèque de concurrence Java fournit une suite d'outils pour gérer l'exécution multi-thread, la synchronisation et la cohérence de la mémoire. Elle sert de framework complet pour implémenter l'exécution concurrente via des atomiques sans verrou, des collections thread-safe, des primitives de coordination de tâches et des pools de travailleurs. Le projet inclut une boîte à outils de synchronisation de threads dédiée comprenant des verrous, des barrières et des sémaphores pour coordonner le timing et l'ordre des tâches concurrentes. Il fournit également une suite de collections concurrentes de maps, files d'attente et listes qui permettent le partage de données sans verrouillage manuel, ainsi qu'un framework d'opérations atomiques pour les mises à jour sans verrouillage des types de base et des références. La bibliothèque couvre de vastes domaines de capacité, incluant la gestion de pool de threads pour optimiser l'utilisation des ressources, l'analyse du modèle de mémoire pour assurer la visibilité des données et divers mécanismes de gestion de verrouillage pour prévenir les conditions de course. Ces outils soutiennent collectivement le développement d'applications multi-thread qui maintiennent des transitions d'état cohérentes à travers la mémoire partagée.
Provides a toolkit of latches, barriers, and semaphores to coordinate the timing and order of concurrent tasks.
Parallel is a Ruby library and multi-process execution framework designed to accelerate CPU-intensive operations. It functions as a parallel job orchestrator and concurrent task runner that enables the execution of code across multiple processes or threads. The project distinguishes itself through secure inter-process communication, utilizing signed data serialization to prevent the injection of forged payloads between parent and child processes. It further differentiates its worker management by assigning unique identifiers to individual processes to prevent collisions when accessing shared
Manages the lifecycle and resource allocation of multiple child processes to perform parallel operations safely.
PowerDNS is DNS server software used for serving authoritative and recursive DNS records. It functions as both an authoritative DNS server, providing definitive records for specific domains from trusted databases, and a recursive DNS resolver that finds answers for any domain by iteratively querying external servers. The project distinguishes itself through a backend-abstraction layer that decouples server logic from data storage, allowing records to be served from SQL databases, zone files, and external APIs. It includes a geo-aware DNS router to direct users to the nearest server based on t
Implements architectural components to manage the lifecycle and coordination of multiple related services within a single container.
This project provides instructional and reference materials for C++ development, focusing on the Qt framework. It serves as a guide and example library for network programming, cross-platform builds, multithreaded execution, and GUI customization. The collection features specialized patterns for building user interfaces and customizing widgets through custom painting and styling. It also provides a reference for implementing client-server communication and managing concurrent tasks using synchronization primitives. The project covers a broad range of capabilities, including cross-platform ap
Provides a reference for managing concurrent tasks using synchronization primitives to ensure thread-safe memory access.
Easyloggingpp is a header-only C++ logging framework and diagnostic tool designed for recording system events and diagnostic messages. It functions as a thread-safe logging library that synchronizes access across multiple concurrent execution threads to prevent data corruption during event recording. The framework features an asynchronous logger that processes messages on a background thread to minimize latency and prevent blocking the main application. It also acts as a log dispatcher, capable of routing data to local files, system syslog facilities, or remote network destinations for system
Implements mutexes and synchronization primitives to ensure thread-safe access to shared logging state.