offscreen-webrtc
miniflare
offscreen-webrtc | miniflare | |
---|---|---|
10 | 19 | |
2 | 3,674 | |
- | 0.5% | |
10.0 | 7.2 | |
over 1 year ago | 2 months ago | |
JavaScript | TypeScript | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
offscreen-webrtc
-
Client side Rest server?
Using an extension we can create an offscreen document, connect to a Native Messaging host, stream stdin to a local application, and stream stdout to the browser (Web page), see offscreen-webrtc.
-
Is websockets is good for sending files?
There are multiple ways to upload and send files, including WebRTC datachannels, e.g., https://github.com/guest271314/offscreen-webrtc, WebTransport, WebTorrent https://github.com/jeremyckahn/secure-file-transfer, WebSocket, WebSocketStream, or just using Fetch and Streams. fetch() on Chromium-based browsers also supports duplex:'half' in request init for bi-directional streaming capability.
-
How to serve exactly 1 HTML file and 1 JavaScript file, then exit the program?
To achieve this specific task, once an HTML page is loaded into the browser, and a ServiceWorker is registered for that scope, the server does not need to remain active to maintain the functionality of intercepting requests from the Web page (popup window) to the ServiceWorker, where the ServiceWorker can itself make requests to, for example, the same local server to execute parec and pipe output to multiple EventSource responses within the same initial connection, or pipe data to a single ReadableStream served with Response() and event.respondWith(), e.g., see https://github.com/guest271314/offscreen-webrtc, https://github.com/guest271314/sw-transfer-stream.
-
[AskJS] Has anybody implemented and compiled ServiceWorker specification to a standalone executable?
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.
-
Run untrusted code in a Web Worker
Yes, you can create an iframe and/or a new window that you have complete control of to execute arbitrary code using either localhost or an extension; e.g., https://github.com/guest271314/sw-transfer-stream, https://github.com/guest271314/offscreen-webrtc.
-
Is there any way to write code on one screen and see output on another?
Yes. You can use WebRTC. See https://gist.github.com/guest271314/53e00c6765aa256362fb52c08e82d189, https://github.com/guest271314/offscreen-webrtc.
-
What chrome extensions are you using in 2023?
Establish WebRTC connection between offscreen document and arbitrary Web page to transfer data from ServiceWorker to Web page https://github.com/guest271314/offscreen-webrtc
-
[AskJS] What are the worst case scenarios for programmatically setting arbitrary Web pages (Origins) as Client or WindowClient of a ServiceWorker?
There are workarounds which involve using an iframe https://github.com/guest271314/persistent-serviceworker/tree/main/chromium_extension_web_accessible_resources_iframe_message_event or window.open() https://github.com/guest271314/sw-transfer-stream or and offscreen document https://github.com/guest271314/offscreen-webrtc with WebRTC - however that involves loading an entire HTML document, and each has its own deficienfies - with all of the Window features that we do not really need just to transfer data between the Web page I have control of and the ServiceWorker I have control of.
- Transfer ArrayBuffer from ServiceWorker to Web page
- ServiceWorker WebRTC signaling
miniflare
- [AskJS] Has anybody implemented and compiled ServiceWorker specification to a standalone executable?
-
A better way to set up a Cloudflare worker project locally with Miniflare
Recently Cloudflare introduces Miniflare. As its name suggests, Miniflare is a feature-rich but miniature version of Cloudflare worker. Miniflare is a simulator that provides an environment for developing and testing Cloudflare worker scripts locally. Miniflare is written in typescript and supports most of the Cloudflare worker features like the KV database, durable objects, WebSockets, etc.
-
[AskJS] Is there an JavaScript engine agnostic server module that can be imported into Bun, QuickJS, Deno, and Node.js?
Another implementation of the above is Cloudfare workers you might be capable of grasp some ideas from here https://miniflare.dev
- Ask HN: What cloud provider are you using for new projects?
-
Workerd: The Open Source Cloudflare Workers Runtime
Is there an ETA on Miniflare v3? Ran into a problem recently using overlapping keys with forward slashes as they were not sanitized properly: https://github.com/cloudflare/miniflare/issues/167
-
Part 2: KV store
The KV API is only available on Cloudflare Workers. But, during development, Rakkas runs our app on Node.js. Fortunately, the Miniflare project has a KV implementation for Node. The other two packages that we've installed (@miniflare/kv and @miniflare/storage-memory) are what we need to be able to use the KV API during development. Let's create a src/kv-mock.ts file and create a local KV store to store our ublog posts ("twits") while testing:
-
Web Workers are the Future! 🏗
I used hono (a wrapper around miniflare) to handle some of the boilerplate around request and routing logic. It's also refreshingly fast! 🔥
-
Deploy a GitHub Application to Cloudflare Workers
The simple explanation is that I'm proposing use of the Service Worker API. Cloudflare offers a flat, free, 100k requests a day if you can keep it cutting edge, has local development and testing options with miniflare and a key/value (KV) store.
-
Serverless Remix Sessions with Cloudflare Pages
When we run the dev script, this will ensure that the local runtime environment Miniflare will bind a KV with the name sessionStorage to our Pages function.
-
Show HN: Slshx – React-Inspired Discord Commands on Cloudflare Workers
Slshx is a library for building strongly-typed Discord commands (https://discord.com/developers/docs/interactions/application...) that run on Cloudflare Workers (https://workers.cloudflare.com/), using a React-inspired syntax (hooks and JSX). It supports all Discord command types/options, autocomplete and interactive message components. During development, it automatically deploys your commands whenever you change your code.
I created this because I think Cloudflare Workers are a great fit for hosting Discord commands, but there wasn't an easy way to get started that had a fun development experience. I also wanted to see what a Miniflare-first (https://github.com/cloudflare/miniflare) library could look like.
What are some alternatives?
chrome-extensions-samples - Chrome Extensions Samples
wrangler-legacy - 🤠 Home to Wrangler v1 (deprecated)
native-messaging-bun - Bun Native Messaging host
krustlet - Kubernetes Rust Kubelet
native-messaging-deno - Deno Native Messaging Host
hono - Web Framework built on Web Standards
partytown - Relocate resource intensive third-party scripts off of the main thread and into a web worker. 🎉
cloudflare-worker-github-app-example - A Cloudflare Worker + GitHub App Example
native-messaging-nodejsNative
relay-starter-kit - 💥 Monorepo template (seed project) pre-configured with GraphQL API, PostgreSQL, React, and Joy UI. [Moved to: https://github.com/kriasoft/graphql-starter-kit]
quickjs-rs - Rust wrapper for the quickjs Javascript engine.
examples - Serverless Examples – A collection of boilerplates and examples of serverless architectures built with the Serverless Framework on AWS Lambda, Microsoft Azure, Google Cloud Functions, and more.