29 repositorios
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 es un motor de juegos 3D WebGL y un framework de aplicaciones extensible utilizado para crear experiencias 3D interactivas y juegos basados en navegador. Proporciona una capa de abstracción simplificada sobre el renderizado WebGL de bajo nivel para gestionar cámaras, iluminación y el entorno 3D general. El framework utiliza un grafo de escena 3D modular para organizar objetos en un sistema jerárquico de componentes. Integra simulación física multihilo mediante el uso de web workers para ejecutar cálculos en paralelo con el bucle de renderizado principal. El sistema incluye una arquitectura de plugins modular que permite la extensión de la lógica base de la aplicación a través de un sistema conectable. También cuenta con inicialización automática de escenas para manejar la configuración del renderizador y el entorno.
Runs heavy physics calculations in separate background threads using web workers to maintain high frame rates.
electron-vite es un sistema de build y orquestador de bundles multi-proceso que utiliza Vite para compilar y empaquetar los procesos main, preload y renderer para aplicaciones Electron. Funciona como un andamiaje para aplicaciones de escritorio, proporcionando plantillas para integrar varios frameworks de frontend en una estructura de proyecto estandarizada. El proyecto se distingue por la protección integrada del código fuente, utilizando un ofuscador de bytecode V8 para compilar JavaScript en bytecode y ofuscar cadenas para prevenir la ingeniería inversa. También gestiona arquitecturas de escritorio complejas aislando bundles y chunks compartidos a través de múltiples ventanas y contextos de ejecución. El conjunto de herramientas cubre una amplia gama de capacidades, incluyendo pipelines de empaquetado automatizados para instaladores multiplataforma, orquestación de servidores de desarrollo con hot module replacement y la gestión de módulos nativos y WebAssembly. Soporta además el scoping de entornos y la configuración de externalización de módulos binarios para optimizar los builds de producción.
Resolves worker imports into bundle paths during the build process for multi-threaded background execution.
Pagefind es un motor de búsqueda para sitios estáticos que indexa archivos HTML para proporcionar una experiencia de búsqueda basada en navegador sin necesidad de un servidor backend o API. Consiste en un indexador de búsqueda multilingüe y un conjunto de componentes de interfaz de usuario preconstruidos y personalizables para renderizar inputs de búsqueda y listas de resultados. El sistema está diseñado para contenido global, utilizando un indexador de búsqueda multilingüe que detecta los idiomas de las páginas y crea bundles de índice independientes para proporcionar stemming y resultados específicos por idioma. Además, optimiza el rendimiento utilizando un índice comprimido y delegando la ejecución de consultas a un web worker para mantener la interfaz de usuario receptiva. La herramienta cubre una amplia gama de capacidades de indexación y recuperación, incluyendo la capacidad de procesar diversos tipos de contenido como PDF y JSON, así como filtrado de búsqueda facetada basado en metadatos personalizados. Proporciona mecanismos para el ajuste de relevancia de resultados, división de secciones de página para mejorar la precisión y un kit de UI integral que incluye modales, paneles de filtro y resaltado de términos. El proyecto incluye herramientas para desarrolladores para servir sitios localmente y exportaciones de playground de diagnóstico para depurar el comportamiento del índice.
Offloads search processing and index parsing to a web worker to prevent blocking the main user interface thread.
Booster es un optimizador de compilación y manipulador de bytecode para aplicaciones Android, diseñado para reducir el tamaño del binario, corregir fallos a nivel de sistema y mejorar el rendimiento de la aplicación. Funciona como un plugin extensible del proceso de compilación que modifica archivos de clase compilados y artefactos de construcción para inyectar correcciones de estabilidad y optimizaciones sin alterar el código fuente original. El proyecto se diferencia por la manipulación de bytecode de bajo nivel para parchear errores a nivel de SO y gestionar pools de hilos durante la fase de compilación. También proporciona un kit de herramientas de perfilado de rendimiento para identificar operaciones que bloquean el hilo principal y analizar problemas de estabilidad relacionados con los recursos. La herramienta cubre una amplia gama de capacidades de optimización de paquetes, incluyendo compresión de imágenes para PNG y WebP, eliminación de recursos redundantes y optimización del índice de recursos. La funcionalidad adicional incluye ajuste de rendimiento para la gestión de hilos, escrituras asíncronas de preferencias y análisis estático para escanear artefactos de compilación y detectar riesgos de seguridad y cuellos de botella. El sistema utiliza una interfaz de proveedor de servicios para la integración de plugins personalizados y puede ejecutarse como una aplicación independiente desacoplada del entorno de compilación principal.
Implements architectural patterns to offload blocking preference commits and operations to background worker threads.
gif.js es un codificador de GIF en JavaScript y cuantificador de color del lado del cliente que genera archivos GIF animados directamente dentro del navegador web. Funciona como un exportador de canvas HTML5 y procesador de imágenes, permitiendo la creación de imágenes animadas desde fuentes web sin necesidad de un servidor backend. La biblioteca utiliza web workers para descargar tareas pesadas de codificación de imágenes a hilos en segundo plano, lo que evita que la interfaz de usuario del navegador se congele durante el proceso de generación. Esta arquitectura permite que la herramienta actúe como un procesador de imágenes web worker para la generación dinámica de imágenes. El sistema cubre capacidades para convertir fotogramas de video a GIFs y exportar animaciones de canvas. Incluye funcionalidad para gestionar el tiempo de los fotogramas, configurar propiedades de salida globales como dimensiones y conteos de bucle, y realizar cuantificación de color basada en paleta para garantizar la compatibilidad con GIF.
Employs a worker-thread pattern to distribute frame encoding tasks across multiple background threads.
Keras-js es un motor de inferencia de JavaScript y framework de aprendizaje automático basado en navegador diseñado para ejecutar redes neuronales Keras preentrenadas. Permite la inferencia de modelos del lado del cliente en navegadores web o entornos de Node.js sin el requisito de un servidor backend. La biblioteca utiliza un acelerador de tensores WebGL para mapear operaciones matemáticas al procesador gráfico para aceleración por hardware. Para mantener la capacidad de respuesta de la interfaz de usuario durante cálculos pesados, incorpora un tiempo de ejecución de inferencia de web worker que ejecuta el procesamiento de la red neuronal en hilos en segundo plano. El sistema admite la carga de modelos mediante archivos de configuración JSON y tensores de pesos. Gestiona grandes arrays numéricos utilizando almacenamiento de texturas WebGL para facilitar el acceso a memoria de alta velocidad durante la ejecución de tensores.
Executes neural network processing in background web worker threads to maintain user interface responsiveness.
wmr es una herramienta de desarrollo de aplicaciones web y sistema de compilación que funciona como un bundler de módulos ES, generador de sitios estáticos y servidor de desarrollo local. Proporciona un entorno completo para crear aplicaciones web modernas, combinando un compilador de producción con un servidor que admite recarga en caliente (hot reloading). El proyecto se distingue por su enfoque integrado en scripts de fondo y enrutamiento, sirviendo tanto como bundler de service workers como herramienta para el enrutamiento basado en el sistema de archivos. Permite la generación de HTML estático mediante prerenderizado y proporciona integración nativa para generar web workers para manejar cálculos pesados. El sistema cubre una amplia gama de capacidades de automatización de compilación, incluyendo compilación bajo demanda, manejo de solicitudes basado en middleware y un pipeline impulsado por plugins para extender la lógica de compilación. También incluye utilidades para gestionar variables de entorno, mapear rutas de importación y analizar el tamaño del bundle para optimizar los activos de producción.
Compiles and bundles service worker scripts to enable offline asset management.
Text Embeddings Inference es un servidor de inferencia de alto rendimiento diseñado para alojar modelos de embedding de texto y clasificación de secuencias como endpoints de API escalables. Proporciona una API de embedding vectorial para convertir texto en representaciones densas y un servidor de reranking (re-clasificación) cross-encoder para puntuar la relevancia de secuencias de documentos frente a una consulta. El proyecto cuenta con un motor de inferencia acelerado por GPU que utiliza procesamiento por lotes dinámico y kernels especializados para maximizar el rendimiento. Ofrece una interfaz binaria de alto rendimiento a través de gRPC como alternativa al HTTP estándar para reducir la latencia de red y la sobrecarga de serialización. El sistema cubre una amplia gama de capacidades, incluyendo el ranking de similitud de documentos, el reranking de texto multilingüe y la clasificación de secuencias para predecir categorías o sentimientos. Admite diversos entornos de despliegue, desde contenedores de auto-escalado serverless hasta instalaciones aisladas (air-gapped). La aceleración por hardware está disponible para GPUs NVIDIA, GPUs AMD y Apple Metal.
Offloads text processing and sequence truncation to a separate pool of threads to prevent blocking the main inference loop.
Este proyecto es una colección de demostraciones técnicas y prototipos que muestran varias APIs de HTML5, capacidades multimedia e implementaciones de estándares web. Sirve como un sandbox de tecnología frontend y una galería de pruebas de concepto de implementación para características modernas de los navegadores. La colección incluye muestras especializadas para multimedia en HTML5, presentando la manipulación de audio, video y flujos de medios en tiempo real. También proporciona una serie de experimentos centrados en la creación de prototipos de capacidades web para verificar la viabilidad técnica y el soporte del navegador en entornos en vivo. El proyecto cubre una amplia gama de dominios funcionales, incluyendo renderizado de gráficos basado en navegador y servicios de geolocalización. Demuestra almacenamiento y persistencia de datos en el lado del cliente, sincronización de datos en tiempo real mediante conexiones bidireccionales y comunicación segura entre ventanas. Las capacidades adicionales incluyen ejecución de tareas en segundo plano, caché de activos web y elementos de interfaz de usuario interactivos como implementaciones de arrastrar y soltar.
Demonstrates background threading using Web Workers to execute heavy computations without freezing the UI.
Greenlet es un ejecutor asíncrono multihilo y ejecutor de tareas de web worker. Sirve como envoltorio de ejecución que descarga cálculos pesados a trabajadores en segundo plano para mantener la capacidad de respuesta de la interfaz de usuario y evitar que el hilo de ejecución principal se bloquee. El proyecto incluye un manejador de objetos transferibles diseñado para mover grandes buffers de datos entre hilos. Este mecanismo evita la sobrecarga de copiar memoria para optimizar la transferencia de datos. La biblioteca cubre la gestión de web workers, facilitando el aislamiento de tareas asíncronas y la descarga del hilo principal.
Executes JavaScript in separate OS threads to ensure the main UI thread remains free for user interactions.
Este proyecto es una colección de patrones de implementación y ejemplos de código fuente para construir aplicaciones de escritorio utilizando varias librerías de interfaz de Python. Proporciona implementaciones de referencia y patrones arquitectónicos para múltiples frameworks, incluyendo PyQt, PySide, Tkinter, Kivy y Streamlit. El repositorio se distingue por ofrecer ejemplos especializados para diversos tipos de interfaz, que van desde software de escritorio profesional y ventanas nativas hasta dashboards de datos web reactivos y herramientas de ciencia de datos. Incluye material de referencia específico para patrones de UI multiplataforma, como diseños modelo-vista y ejecución asíncrona de tareas en segundo plano. El proyecto cubre una amplia gama de capacidades, incluyendo gestión de diseño, desarrollo de widgets personalizados con animaciones y renderizado acelerado por GPU para visualizaciones en tiempo real. También demuestra técnicas de gestión de datos como filtrado basado en proxy y estilo de datos tabulares, así como flujos de trabajo de despliegue para empaquetar código fuente en ejecutables distribuibles con activos incrustados. Los ejemplos abordan además componentes de UI funcionales como validación de entrada, menús de navegación e integración en la bandeja del sistema, junto con implementaciones de seguridad para autenticación de usuarios y control de acceso basado en roles.
Demonstrates architectural patterns for offloading heavy processing to background threads to maintain interface responsiveness.
Hive es una base de datos NoSQL de clave-valor ligera escrita en Dart puro para la persistencia de datos local. Funciona como un almacén de documentos con seguridad de tipos que permite guardar y recuperar estructuras de datos complejas y objetos personalizados. El sistema se distingue por el uso de adaptadores personalizados para la serialización de objetos y cifrado de clave simétrica para asegurar los datos en reposo. Para entornos web, proporciona una capa de persistencia que envuelve IndexedDB y utiliza web workers. El proyecto cubre áreas de capacidad amplias, incluyendo gestión de contenedores, escrituras transaccionales atómicas y recuperación de datos indexados. Soporta la descarga de operaciones de base de datos a isolates en segundo plano para mantener la capacidad de respuesta de la interfaz de usuario y permite la inicialización de contenedores de almacenamiento a través de activos binarios pre-poblados.
Offloads database operations to background isolates to prevent blocking the main user interface thread.
Workerize es un cargador de módulos de web worker y descargador del hilo principal. Funciona como un envoltorio de proxy asíncrono que permite que los módulos de JavaScript se ejecuten en workers en segundo plano, evitando bloqueos de la UI del navegador al delegar tareas computacionalmente costosas a hilos separados. El proyecto utiliza una interfaz basada en proxy para llamar a funciones dentro de un worker en segundo plano como si fueran llamadas asíncronas locales. Este mecanismo permite la ejecución de módulos en workers paralelos para mantener la capacidad de respuesta del hilo principal. El sistema cubre la ejecución asíncrona de módulos y la integración de web workers, centrándose en la optimización del hilo principal al mover la lógica pesada fuera del hilo de ejecución primario.
Loads and runs JavaScript modules in Web Workers to move heavy logic off the main thread.