awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
GoogleChromeLabs avatar

GoogleChromeLabs/comlink

0
View on GitHub↗
12,715 estrellas·429 forks·TypeScript·Apache-2.0·6 vistas

Comlink

Comlink is a remote procedure call library that transforms message-based communication into asynchronous function calls between the main thread and web workers. It provides a proxy-based interface that allows multiple threads to interact with a single object instance without manual message handling.

The project enables the execution of functions across separate browser windows, iframes, and web workers, making external calls behave like local asynchronous operations. It supports the transfer of non-cloneable data through custom serialization handlers and allows for the movement of ownership for transferable objects to avoid data cloning.

The library also includes mechanisms for resource management, such as proxy lifecycle detachment to trigger garbage collection and finalizer cleanup logic.

Features

  • Proxy-Based Interfaces - Uses JavaScript Proxy objects to intercept method calls and wrap them in asynchronous messages sent across a channel.
  • Complex Data Serialization - Transfers non-cloneable data across thread boundaries using custom serialization handlers.
  • Remote Procedure Execution - Allows executing functions on a different thread as if they were local asynchronous operations.
  • Cross-Thread - Provides a serialization layer for transferring non-cloneable data and transferable objects across thread boundaries.
  • Remote Object Proxies - Provides proxies that forward method calls to remote worker targets and return promises.
  • Background Thread Dispatchers - Routes heavy tasks to background workers to keep the main thread responsive.
  • Browser Function Invocations - Invokes functions and objects on a web worker from the main thread using asynchronous interfaces.
  • Main Thread Offloading - Optimizes browser performance by offloading heavy computations to background threads to maintain a smooth UI.
  • MessageChannel Bridges - Uses the browser MessageChannel API to enable bidirectional communication between workers and iframes.
  • Complex Object Serializers - Provides custom serialization handlers to transfer non-cloneable complex objects across thread boundaries.
  • WebWorker RPC Libraries - Transforms message-based communication into asynchronous function calls between the main thread and web workers.
  • Remote Object Proxies - Passes a proxy of a value instead of a copy to allow multiple threads to interact with a single object instance.
  • Embedded and Browser Bridge Protocols - Facilitates communication between isolated execution environments like iframes and browser windows.
  • Remote Promise Messaging - Implements a messaging system that maps remote responses to local promises using unique request identifiers.
  • Proxy-Based Shared State - Enables multiple threads to interact with a single object instance using proxies instead of copying data.
  • Ownership Transfer - Passes ownership of large buffers via the postMessage transfer list to avoid expensive data cloning.
  • Cross-Window Communication Layers - Establishes communication channels between separate browser windows or iframes using RPC patterns.
  • Web Worker Management - Simplifying postMessage communication with workers.

Historial de estrellas

Gráfico del historial de estrellas de googlechromelabs/comlinkGráfico del historial de estrellas de googlechromelabs/comlink

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Comlink

Proyectos open-source similares, clasificados según cuántas características comparten con Comlink.
  • andywer/threads.jsAvatar de andywer

    andywer/threads.js

    3,526Ver en GitHub↗

    threads.js is a JavaScript worker thread library and asynchronous task orchestrator designed to offload CPU-intensive tasks to background threads. It functions as a cross-platform worker pool and a TypeScript worker runner that automatically transpiles and executes TypeScript files within separate threads. The project distinguishes itself by providing a unified worker API that allows for cross-platform execution across different JavaScript environments. It includes a specialized worker data serialization tool to pass complex class instances and binary data between threads, and supports inlini

    TypeScriptisomorphic-javascriptjavascriptmultithreading
    Ver en GitHub↗3,526
  • facebookarchive/asyncdisplaykitAvatar de facebookarchive

    facebookarchive/AsyncDisplayKit

    13,345Ver en GitHub↗

    AsyncDisplayKit is an asynchronous UI framework and performance library for iOS. It provides a collection of performant alternatives to standard views, allowing developers to build responsive interfaces by offloading layout and rendering tasks to background threads. The framework is centered around a declarative layout engine based on a flexbox model, which calculates element positions and sizes asynchronously. It utilizes a node-based abstraction to wrap native views, enabling the instantiation and configuration of UI hierarchies on background threads to prevent main thread blocking. The sy

    Objective-C++
    Ver en GitHub↗13,345
  • developit/greenletAvatar de developit

    developit/greenlet

    4,689Ver en GitHub↗

    Greenlet is a multi-threaded asynchronous executor and web worker task runner. It serves as an execution wrapper that offloads heavy computation to background workers to maintain user interface responsiveness and prevent the main execution thread from blocking. The project includes a transferable object handler designed to move large data buffers between threads. This mechanism avoids the overhead of memory copying to optimize data transfer. The library covers the management of web workers, facilitating asynchronous task isolation and main thread offloading.

    JavaScript
    Ver en GitHub↗4,689
  • developit/workerizeAvatar de developit

    developit/workerize

    4,378Ver en GitHub↗

    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

    JavaScript
    Ver en GitHub↗4,378
Ver las 30 alternativas a Comlink→

Preguntas frecuentes

¿Qué hace googlechromelabs/comlink?

Comlink is a remote procedure call library that transforms message-based communication into asynchronous function calls between the main thread and web workers. It provides a proxy-based interface that allows multiple threads to interact with a single object instance without manual message handling.

¿Cuáles son las características principales de googlechromelabs/comlink?

Las características principales de googlechromelabs/comlink son: Proxy-Based Interfaces, Complex Data Serialization, Remote Procedure Execution, Cross-Thread, Remote Object Proxies, Background Thread Dispatchers, Browser Function Invocations, Main Thread Offloading.

¿Qué alternativas de código abierto existen para googlechromelabs/comlink?

Las alternativas de código abierto para googlechromelabs/comlink incluyen: andywer/threads.js — threads.js is a JavaScript worker thread library and asynchronous task orchestrator designed to offload CPU-intensive… facebookarchive/asyncdisplaykit — AsyncDisplayKit is an asynchronous UI framework and performance library for iOS. It provides a collection of… developit/greenlet — Greenlet is a multi-threaded asynchronous executor and web worker task runner. It serves as an execution wrapper that… developit/workerize — Workerize is a web worker module loader and main thread offloader. It functions as an asynchronous proxy wrapper that… kriskowal/q — q is a JavaScript promise library and asynchronous flow controller designed to manage non-blocking operations. It… whatwg/html — This repository contains the HTML specification, which defines the core standards for web page structuring, content…