[AskJS] Has anybody implemented and compiled ServiceWorker specification to a standalone executable?

This page summarizes the projects mentioned and recommended in the original post on /r/javascript

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • sw-transfer-stream

    MV3 ServiceWorker => ReadableStream => Web page

    I've already built it https://github.com/guest271314/captureSystemAudio#web-accessible-resources-transferable-streams-media-capture-transform-breakout-box, https://github.com/guest271314/captureSystemAudio/blob/master/native_messaging/capture_system_audio/capture_system_audio.js; see also https://github.com/guest271314/sw-transfer-stream and https://github.com/guest271314/offscreen-webrtc. I'm just trying to reduce steps https://github.com/guest271314/requestClient.

  • workerd

    The JavaScript / Wasm runtime that powers Cloudflare Workers

    I just tested workerd, however streams are not enabled by default and the configuration file is insane https://github.com/cloudflare/workerd/issues/419. I have no idea why they just didn't use JSON.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

  • captureSystemAudio

    Capture system audio ("What-U-Hear")

    I've already built it https://github.com/guest271314/captureSystemAudio#web-accessible-resources-transferable-streams-media-capture-transform-breakout-box, https://github.com/guest271314/captureSystemAudio/blob/master/native_messaging/capture_system_audio/capture_system_audio.js; see also https://github.com/guest271314/sw-transfer-stream and https://github.com/guest271314/offscreen-webrtc. I'm just trying to reduce steps https://github.com/guest271314/requestClient.

  • wasm-workers-server

    🚀 Develop and run serverless applications on WebAssembly

  • js-compute-runtime

    JavaScript SDK and runtime for building Fastly Compute applications

  • miniflare

    🔥 Fully-local simulator for Cloudflare Workers. For the latest version, see https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare.

  • SSVM

    WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. It powers serverless apps, embedded functions, microservices, smart contracts, and IoT devices.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • yew

    Rust / Wasm framework for creating reliable and efficient web applications

  • nodebox-runtime

    Nodebox is a runtime for executing Node.js modules in the browser.

    There is also https://github.com/codesandbox/nodebox-runtime. However, we can already do that using an iframe or window.open().

  • quickjs-rs

    Rust wrapper for the quickjs Javascript engine.

    Implementing this using quickjs sounds like a great little weekend project. If only I had a weekend to spend on it!

  • offscreen-webrtc

    Offscreen document <=> WebRTC Data Channel <=> Web page

    I've already built it https://github.com/guest271314/captureSystemAudio#web-accessible-resources-transferable-streams-media-capture-transform-breakout-box, https://github.com/guest271314/captureSystemAudio/blob/master/native_messaging/capture_system_audio/capture_system_audio.js; see also https://github.com/guest271314/sw-transfer-stream and https://github.com/guest271314/offscreen-webrtc. I'm just trying to reduce steps https://github.com/guest271314/requestClient.

  • requestClient

    Dynamically set Web page, Worker, SharedWorker, Worklet as a Client or WindowClient of ServiceWorker

    I've already built it https://github.com/guest271314/captureSystemAudio#web-accessible-resources-transferable-streams-media-capture-transform-breakout-box, https://github.com/guest271314/captureSystemAudio/blob/master/native_messaging/capture_system_audio/capture_system_audio.js; see also https://github.com/guest271314/sw-transfer-stream and https://github.com/guest271314/offscreen-webrtc. I'm just trying to reduce steps https://github.com/guest271314/requestClient.

  • Screenshare-with-audio-on-Discord-with-Linux

    A repo trying to gather all info regarding proper screensharing on Discord with Desktop Audio for linux users

    Chromium and Chrome refuses to capture monitor devices on Linux. Read this https://github.com/edisionnano/Screenshare-with-audio-on-Discord-with-Linux README and the README at https://github.com/guest271314/captureSystemAudio very carefully. At best you can capture tab audio, not whatever is output to speakears and headphones, in spite of the systemAudio constraints, which is poorly named, and actually misleading.

  • webhoster

    HTTP/HTTPS/HTTP2 Web Hoster

    I have an extremely similar setup, but not 100% to spec because I wrote a HTTP server in node and it has some expectations of being used for HTTP requests. But most of Response is built into the API, with expectation that you would interface with an HTTP request in the same fashion as a service worker. The public version is out of date, but the internal version I have used has the stream consumers. I use it for HTTP2 Push setup.

  • readable-stream

    Node-core streams for userland

    You then want what's invoked by that event to be consumed as a Response. NodeJS has something to replicate this with stream consumers where you can do all the response.text() you normally do.

  • native-messaging-deno

    Deno Native Messaging Host

    I'm basically trying to do this https://github.com/guest271314/native-messaging-deno/blob/local-server-dynamic/local_server.js without the issue with deno executable increasing CPU to over 90% when streaming, and without carrying around the rest of Deno that I will not be using. Building deno requires using Rust toolchain which is over 1GB to install before we even begin building anything, which is non-trivial to do.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts