29 Repos
Architectural patterns where background threads process independent tasks and return results to a main thread.
Distinct from Worker Thread Reuse: Distinct from limiting thread counts or UI messaging; focuses on the task distribution model.
Explore 29 awesome GitHub repositories matching software engineering & architecture · Worker Thread Patterns. Refine with filters or upvote what's useful.
Fuse is a JavaScript fuzzy search library and client-side search engine designed to index and query JSON data. It provides utilities for approximate string matching and ranking results by relevance, allowing applications to perform fast filtering and searching of datasets without a dedicated backend. The library distinguishes itself through a token-based search implementation that supports word-order independence and relevance weighting. It utilizes edit-distance scoring to handle typos and insertions, and employs a system of field weighting to prioritize matches in high-value data keys. The
Distributes search tasks across background worker threads to maintain main-thread responsiveness.
AR.js is a web-based augmented reality framework used to create immersive experiences directly in a browser using WebGL and WebRTC. It provides a cross-platform runtime that executes on mobile devices and head-mounted displays without requiring a dedicated application installation. The framework includes a marker-based engine for detecting physical patterns or barcodes to anchor digital overlays, a location-based tool for positioning entities via GPS coordinates, and a face tracking library for anchoring content to human facial features. It supports multi-marker simultaneous tracking, custom
Offloads heavy image processing and pattern matching to background threads to maintain high performance.
This project is a collection of Python scripts and tools designed for web scraping, browser automation, and large-scale data extraction. It provides a set of implementations for retrieving information from websites and private APIs, including tools for multimedia downloading and social media data archiving. The toolset includes specialized mechanisms for bypassing anti-scraping measures through IP proxy pool rotation and multi-threaded crawlers. It also features capabilities for simulating browser sessions to handle authentication, intercepting session cookies, and decrypting network payloads
Uses a thread-safe queue to distribute target URLs across multiple worker threads for accelerated collection.
sql.js is a serverless, in-memory SQL database engine that ports SQLite to WebAssembly for use within a web browser. It provides a JavaScript interface to initialize relational databases, execute SQL queries, and manage structured data without requiring a backend server. The project enables the import and export of database states using typed arrays, allowing in-memory data to be persisted as files. It supports high-precision integer retrieval via BigInt and utilizes prepared statements to increase execution speed and security. The engine includes capabilities for client-side data management
Employs worker thread patterns to offload heavy database computations and keep the user interface responsive.
jspaint is a web-based reimplementation of Microsoft Paint, built entirely in JavaScript to run in a browser. It recreates the classic desktop application by reverse-engineering the original Win32 API calls and event handling, rendering the entire interface onto an HTML5 canvas for pixel-perfect retro graphics. The project preserves the original file format compatibility with BMP, PNG, GIF, and JPEG, ensuring exact pixel data matches the legacy application. The application maintains a complete undo history stack using compressed image snapshots, and offloads computationally intensive image pr
Offloads computationally intensive image processing operations to background web workers for UI responsiveness.
Node.js is an open-source, cross-platform JavaScript runtime environment built on the V8 engine, designed for executing JavaScript code outside a web browser. It operates as a server-side JavaScript platform with an event-driven, non-blocking I/O architecture that enables building scalable network applications and web servers. The runtime integrates the CommonJS module system for synchronous module loading and the npm ecosystem for sharing and reusing packages. The platform provides comprehensive capabilities for web server development, including creating HTTP and HTTPS servers, managing HTTP
Ships a built-in worker_threads module for running JavaScript in parallel threads with shared memory.
oneAPI Threading Building Blocks (oneTBB)
Provides a thread-local task bypass that hands tasks directly to worker threads, skipping the global scheduling queue.
whs.js ist eine WebGL-3D-Game-Engine und ein erweiterbares Anwendungs-Framework zur Erstellung interaktiver 3D-Erlebnisse und browserbasierter Spiele. Es bietet eine vereinfachte Abstraktionsschicht über Low-Level-WebGL-Rendering zur Verwaltung von Kameras, Beleuchtung und der gesamten 3D-Umgebung. Das Framework nutzt einen modularen 3D-Szenengraphen, um Objekte in einem hierarchischen System von Komponenten zu organisieren. Es integriert Multithreaded-Physiksimulation durch die Verwendung von Web-Workern, um Berechnungen parallel zur Haupt-Render-Schleife auszuführen. Das System umfasst eine modulare Plugin-Architektur, die die Erweiterung der Basis-Anwendungslogik durch ein steckbares System ermöglicht. Es verfügt zudem über eine automatisierte Szeneninitialisierung, um das Setup von Renderer und Umgebung zu handhaben.
Runs heavy physics calculations in separate background threads using web workers to maintain high frame rates.
electron-vite ist ein Build-System und Multi-Process-Bundle-Orchestrator, der Vite verwendet, um die Main-, Preload- und Renderer-Prozesse für Electron-Anwendungen zu kompilieren und zu bündeln. Er fungiert als Scaffolder für Desktop-Anwendungen und bietet Vorlagen zur Integration verschiedener Frontend-Frameworks in eine standardisierte Projektstruktur. Das Projekt zeichnet sich durch integrierten Quellcodeschutz aus und nutzt einen V8-Bytecode-Obfuscator, um JavaScript in Bytecode zu kompilieren und Strings zu verschleiern, um Reverse Engineering zu verhindern. Es verwaltet zudem komplexe Desktop-Architekturen durch Isolierung von Bundles und Shared Chunks über mehrere Fenster und Ausführungskontexte hinweg. Das Toolset deckt ein breites Spektrum an Funktionen ab, einschließlich automatisierter Packaging-Pipelines für plattformübergreifende Installer, Development-Server-Orchestration mit Hot Module Replacement sowie das Management nativer Module und WebAssembly. Es unterstützt zudem Environment-Scoping und die Konfiguration der Externalisierung binärer Module zur Optimierung von Production-Builds.
Resolves worker imports into bundle paths during the build process for multi-threaded background execution.
Pagefind is a static site search engine that indexes HTML files to provide a browser-based search experience without the need for a backend server or API. It consists of a multilingual search indexer and a set of prebuilt, customizable user interface components for rendering search inputs and result lists. The system is designed for global content, utilizing a multilingual search indexer that detects page languages and creates independent index bundles to provide language-specific stemming and results. It further optimizes performance by using a compressed index and offloading query execution
Offloads search processing and index parsing to a web worker to prevent blocking the main user interface thread.
Booster ist ein Android-App-Build-Optimierer und Bytecode-Manipulator, der darauf ausgelegt ist, die Binärgröße zu reduzieren, Systemabstürze zu beheben und die Anwendungsleistung zu verbessern. Er fungiert als erweiterbares Build-Prozess-Plugin, das kompilierte Klassendateien und Build-Artefakte modifiziert, um Stabilitätsfixes und Optimierungen einzuspielen, ohne den ursprünglichen Quellcode zu verändern. Das Projekt differenziert sich durch Low-Level-Bytecode-Manipulation, um OS-Level-Bugs zu patchen und Thread-Pools während der Kompilierungsphase zu verwalten. Es bietet zudem ein Performance-Profiling-Toolkit, um blockierende Operationen im Main-Thread zu identifizieren und ressourcenbezogene Stabilitätsprobleme zu analysieren. Das Tool deckt eine breite Palette an Paketoptimierungsfunktionen ab, einschließlich Bildkomprimierung für PNGs und WebP, Entfernung redundanter Ressourcen und Optimierung des Ressourcenindex. Zusätzliche Funktionen umfassen Performance-Tuning für Thread-Management, asynchrone Preference-Writes und statische Analyse zum Scannen von Build-Artefakten auf Sicherheitsrisiken und Engpässe. Das System nutzt ein Service-Provider-Interface für die Integration benutzerdefinierter Plugins und kann als eigenständige Anwendung ausgeführt werden, die vom primären Build-Environment entkoppelt ist.
Implements architectural patterns to offload blocking preference commits and operations to background worker threads.
gif.js ist ein JavaScript-GIF-Encoder und clientseitiger Farbquantisierer, der animierte GIF-Dateien direkt im Webbrowser generiert. Er fungiert als HTML5-Canvas-Exporter und Bildprozessor, der die Erstellung animierter Bilder aus Webquellen ohne die Notwendigkeit eines Backend-Servers ermöglicht. Die Bibliothek nutzt Web-Worker, um rechenintensive Bildkodierungsaufgaben auf Hintergrund-Threads auszulagern, was verhindert, dass die Benutzeroberfläche des Browsers während des Generierungsprozesses einfriert. Diese Architektur ermöglicht es dem Tool, als Web-Worker-Bildprozessor für die dynamische Bildgenerierung zu fungieren. Das System deckt Funktionen zur Konvertierung von Videoframes in GIFs und zum Exportieren von Canvas-Animationen ab. Es enthält Funktionalitäten zur Verwaltung von Frame-Timings, zur Konfiguration globaler Ausgabeeigenschaften wie Abmessungen und Schleifenzahlen sowie zur Durchführung einer palettenbasierten Farbquantisierung, um die GIF-Kompatibilität sicherzustellen.
Employs a worker-thread pattern to distribute frame encoding tasks across multiple background threads.
Keras-js ist eine JavaScript-Inferenz-Engine und ein browserbasiertes Machine-Learning-Framework, das darauf ausgelegt ist, vortrainierte Keras-neuronale Netze auszuführen. Es ermöglicht clientseitige Modell-Inferenz in Webbrowsern oder Node.js-Umgebungen, ohne dass ein Backend-Server erforderlich ist. Die Bibliothek nutzt einen WebGL-Tensor-Beschleuniger, um mathematische Operationen zur Hardwarebeschleunigung auf den Grafikprozessor abzubilden. Um die Reaktionsfähigkeit der Benutzeroberfläche während rechenintensiver Berechnungen aufrechtzuerhalten, integriert sie eine Web-Worker-Inferenz-Runtime, die die Verarbeitung neuronaler Netze in Hintergrund-Threads ausführt. Das System unterstützt das Laden von Modellen über JSON-Konfigurationsdateien und Gewichtungs-Tensoren. Es verwaltet große numerische Arrays unter Verwendung von WebGL-Texturspeicherung, um Hochgeschwindigkeits-Speicherzugriffe während der Tensor-Ausführung zu ermöglichen.
Executes neural network processing in background web worker threads to maintain user interface responsiveness.
wmr ist ein Tool für die Webanwendungsentwicklung und ein Build-System, das als ES-Modul-Bundler, Static-Site-Generator und lokaler Entwicklungsserver fungiert. Es bietet eine vollständige Umgebung für die Erstellung moderner Webanwendungen und kombiniert einen Produktions-Compiler mit einem Server, der Hot-Reloading unterstützt. Das Projekt zeichnet sich durch seinen integrierten Ansatz für Hintergrundskripte und Routing aus und dient sowohl als Service-Worker-Bundler als auch als Tool für dateibasiertes Routing. Es ermöglicht die Generierung von statischem HTML durch Prerendering und bietet native Integration für das Spawnen von Web-Workern zur Bewältigung rechenintensiver Aufgaben. Das System deckt ein breites Spektrum an Build-Automatisierungsfunktionen ab, einschließlich On-Demand-Kompilierung, Middleware-basierter Anforderungsverarbeitung und einer Plugin-gesteuerten Pipeline zur Erweiterung der Build-Logik. Es enthält zudem Dienstprogramme für die Verwaltung von Umgebungsvariablen, das Mapping von Importpfaden und die Analyse der Bundle-Größe zur Optimierung von Produktions-Assets.
Compiles and bundles service worker scripts to enable offline asset management.
Text Embeddings Inference ist ein hochperformanter Inferenz-Server, der darauf ausgelegt ist, Text-Embedding- und Sequenz-Klassifizierungsmodelle als skalierbare API-Endpunkte zu hosten. Er bietet eine Vektor-Embedding-API zur Konvertierung von Text in dichte Repräsentationen sowie einen Cross-Encoder-Reranking-Server zur Bewertung der Relevanz von Dokumentsequenzen gegenüber einer Abfrage. Das Projekt bietet eine GPU-beschleunigte Inferenz-Engine, die dynamisches Batching und spezialisierte Kernels nutzt, um den Durchsatz zu maximieren. Es bietet eine hochperformante binäre Schnittstelle via gRPC als Alternative zu Standard-HTTP, um Netzwerklatenz und Serialisierungs-Overhead zu reduzieren. Das System deckt ein breites Spektrum an Funktionen ab, einschließlich Dokument-Ähnlichkeits-Ranking, mehrsprachigem Text-Reranking und Sequenz-Klassifizierung zur Vorhersage von Kategorien oder Sentiment. Es unterstützt diverse Deployment-Umgebungen, von serverlosen Auto-Scaling-Containern bis hin zu Air-Gapped-Installationen. Hardwarebeschleunigung ist für NVIDIA-GPUs, AMD-GPUs und Apple Metal verfügbar.
Offloads text processing and sequence truncation to a separate pool of threads to prevent blocking the main inference loop.
Dieses Projekt ist eine Sammlung technischer Demonstrationen und Prototypen, die verschiedene HTML5-APIs, Multimedia-Funktionen und Implementierungen von Webstandards präsentieren. Es dient als Frontend-Technologie-Sandbox und Galerie von Implementierungs-Proof-of-Concepts für moderne Browser-Features. Die Sammlung enthält spezialisierte Showcases für HTML5-Multimedia, einschließlich der Manipulation von Audio, Video und Echtzeit-Medienströmen. Sie bietet zudem eine Reihe von Experimenten, die sich auf das Prototyping von Web-Funktionen konzentrieren, um die technische Machbarkeit und Browser-Unterstützung in Live-Umgebungen zu verifizieren. Das Projekt deckt eine breite Palette funktionaler Domänen ab, einschließlich browserbasiertem Grafik-Rendering und Geolokalisierungsdiensten. Es demonstriert clientseitige Datenspeicherung und Persistenz, Echtzeit-Datensynchronisation über bidirektionale Verbindungen sowie sichere Cross-Window-Kommunikation. Zusätzliche Funktionen umfassen die Ausführung von Hintergrundaufgaben, das Caching von Web-Assets und interaktive Benutzeroberflächenelemente wie Drag-and-Drop-Implementierungen.
Demonstrates background threading using Web Workers to execute heavy computations without freezing the UI.
Greenlet ist ein Multithread-asynchroner Executor und Web-Worker-Task-Runner. Er dient als Ausführungs-Wrapper, der rechenintensive Aufgaben an Hintergrund-Worker auslagert, um die Reaktionsfähigkeit der Benutzeroberfläche aufrechtzuerhalten und zu verhindern, dass der Hauptausführungs-Thread blockiert wird. Das Projekt enthält einen Handler für übertragbare Objekte, der darauf ausgelegt ist, große Datenpuffer zwischen Threads zu verschieben. Dieser Mechanismus vermeidet den Overhead des Speicherkopierens, um die Datenübertragung zu optimieren. Die Bibliothek deckt die Verwaltung von Web-Workern ab und erleichtert die asynchrone Aufgabenisolierung und das Auslagern vom Haupt-Thread.
Executes JavaScript in separate OS threads to ensure the main UI thread remains free for user interactions.
Dieses Projekt ist eine Sammlung von Implementierungsmustern und Quellcodebeispielen für den Bau von Desktopanwendungen mit verschiedenen Python-Interface-Bibliotheken. Es bietet Referenzimplementierungen und Architekturmuster für mehrere Frameworks, darunter PyQt, PySide, Tkinter, Kivy und Streamlit. Das Repository zeichnet sich dadurch aus, dass es spezialisierte Beispiele für diverse Interface-Typen bietet, von professioneller Desktop-Software und nativen Fenstern bis hin zu reaktiven webbasierten Daten-Dashboards und Data-Science-Tools. Es enthält spezifisches Referenzmaterial für plattformübergreifende UI-Muster, wie Model-View-Layouts und asynchrone Hintergrundaufgaben-Ausführung. Das Projekt deckt ein breites Spektrum an Funktionen ab, einschließlich Layout-Management, Entwicklung benutzerdefinierter Widgets mit Animationen und GPU-beschleunigtem Rendering für Echtzeit-Visualisierungen. Es demonstriert zudem Datenmanagement-Techniken wie proxybasiertes Filtern und tabellarisches Datenstyling sowie Deployment-Workflows zum Verpacken von Quellcode in verteilbare Executables mit eingebetteten Assets. Die Beispiele adressieren zudem funktionale UI-Komponenten wie Eingabevalidierung, Navigationsmenüs und System-Tray-Integration sowie Sicherheitsimplementierungen für Benutzerauthentifizierung und rollenbasierte Zugriffskontrolle.
Demonstrates architectural patterns for offloading heavy processing to background threads to maintain interface responsiveness.
Hive is a lightweight NoSQL key-value database written in pure Dart for local data persistence. It functions as a type-safe document store that allows for the saving and retrieval of complex data structures and custom objects. The system distinguishes itself through the use of custom adapters for object serialization and symmetric-key encryption to secure data at rest. For web environments, it provides a persistence layer that wraps IndexedDB and utilizes web workers. The project covers broad capability areas including container management, atomic transactional writes, and indexed data retri
Offloads database operations to background isolates to prevent blocking the main user interface thread.
Workerize is a web worker module loader and main thread offloader. It functions as an asynchronous proxy wrapper that allows JavaScript modules to run in background workers, preventing browser UI freezes by delegating computationally expensive tasks to separate threads. The project utilizes a proxy-based interface to call functions inside a background worker as if they were local asynchronous calls. This mechanism enables the execution of modules in parallel workers to maintain main thread responsiveness. The system covers asynchronous module execution and web worker integration, focusing on
Loads and runs JavaScript modules in Web Workers to move heavy logic off the main thread.