Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge. Learn more →
Top 22 JavaScript service-worker Projects
-
Project mention: A deep-dive on a Progressive Web App implementation for a React-based App Platform (DHIS2) | dev.to | 2023-08-22
We use the Workbox library and its utilities as a foundation for our service worker.
-
-
Appwrite
Appwrite - The open-source backend cloud platform. Add Auth, Databases, Functions, and Storage to your product and build any application at any scale while using your preferred coding languages and tools.
-
Project mention: It's never been a better time to switch to Firefox | news.ycombinator.com | 2023-11-22
This! It is frustrating that web apps like draw.io can't save to file directly using Firefox. It gets old having to save a new file every time you make a change.
Beyond that, the File System API would also allow for streamed downloads directly from the web-app. This would allow for web-apps to generate large download files without having to store a copy on a database (external server or IndexedDB), which is a privacy improvement. The only way to do this now is by using convoluted techniques to essentially do a MITM to a fake endpoint [1].
-
Project mention: Enable PWA with next.js 13 or later using next-pwa (disabled in development environment) | dev.to | 2023-05-27
/** @type {import('next').NextConfig} */ const path = require("path"); const isDev = process.env.NODE_ENV !== "production"; const withPWA = require("next-pwa")({ dest: "public", disable: isDev, buildExcludes: ["app-build-manifest.json"], }); const generateAppDirEntry = (entry) => { const packagePath = require.resolve("next-pwa"); const packageDirectory = path.dirname(packagePath); const registerJs = path.join(packageDirectory, "register.js"); return entry().then((entries) => { // Register SW on App directory, solution: https://github.com/shadowwalker/next-pwa/pull/427 if (entries["main-app"] && !entries["main-app"].includes(registerJs)) { if (Array.isArray(entries["main-app"])) { entries["main-app"].unshift(registerJs); } else if (typeof entries["main-app"] === "string") { entries["main-app"] = [registerJs, entries["main-app"]]; } } return entries; }); }; const nextConfig = { experimental: { appDir: true, }, reactStrictMode: true, webpack(config) { if( !isDev ){ const entry = generateAppDirEntry(config.entry); config.entry = () => entry; } return config; }, }; module.exports = withPWA(nextConfig);
-
zip.js
JavaScript library to zip and unzip files supporting multi-core compression, compression streams, zip64, split files and encryption.
Project mention: Pigz: Parallel gzip for modern multi-processor, multi-core machines | news.ycombinator.com | 2023-05-12Similarly, if people are interested, I have coded the possibility to compress zip files on several cores in zip.js [1]. The approach is simpler as it consists of compressing the entries in parallel. It still offers a significant performance gain though when compressing multiple files in a zip file, which is often the nominal case.
-
-
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
-
-
Project mention: Webrecorder: Capture interactive websites and replay them at a later time | news.ycombinator.com | 2023-08-01
(Disclaimer: I work at Webrecorder)
Our automated crawler browsertrix-crawler (https://github.com/webrecorder/browsertrix-crawler) uses Puppeteer to run browsers that we archive in by loading pages, running behaviors such as auto-scroll, and then record the request/response traffic. We have some custom behavior for some social media and video sites to make sure that content is appropriate captured. It is a bit of a cat-and-mouse game as we have to continue to update these behaviors as sites change, but for the most part it works pretty well.
The trickier part is in replaying the archived websites, as a certain amount of re-writing has to happen in order to make sure the HTML and JS are working with archived assets rather than the live web. One implementation of this is replayweb.page (https://github.com/webrecorder/replayweb.page), which does all of the rewriting client-side in the browser. This sets you interact with archived websites in WARC or WACZ format as if interacting with the original site.
-
Just created a Server-Sent Events Proxy with my Open Source library Wayne. This was the last open issue on GitHub.
-
-
Ultraviolet
A highly sophisticated proxy used for evading internet censorship or accessing websites in a controlled sandbox using the power of service-workers. Works by intercepting HTTP requests with a service worker script that follows the TompHTTP specifications. (by titaniumnetwork-dev)
I’ve tried a lot of stuff but something that’s worked for me is just using a proxy like Ultraviolet and Rammerhead . Both of these were made with content filtering agents in mind and support a lot of sites.
-
-
-
offline-first-sw
Service worker example with 404 handling, custom offline page and max TTL for specific file types.
-
Mosque-Screen
Chat: https://discord.gg/CG7frj2 - Email: [email protected]. We do not provide any support, this is a volunteer-based project therefore we cannot commit to any time to resolve local issues.
Project mention: Looking for a new OFFLINE athan signage to replace the old software we have | /r/muslimtechnet | 2023-01-01DEFINITELY give mosque-screen a try. It's used in East London Mosque and has to be one of the best implementations I've seen.
-
-
-
-
-
-
Onboard AI
Learn any GitHub repo in 59 seconds. Onboard AI learns any GitHub repo in minutes and lets you chat with it to locate functionality, understand different parts, and generate new code. Use it for free at www.getonboard.dev.
JavaScript service-worker related posts
- It's never been a better time to switch to Firefox
- A deep-dive on a Progressive Web App implementation for a React-based App Platform (DHIS2)
- Workbox: JavaScript Libraries for Progressive Web Apps
- Created a Server-Sent Event Proxy with Wayne
- Considering PWA with Next.js 13 - Any Thoughts?
- Wayne filesystem demo
- Enable PWA with next.js 13 or later using next-pwa (disabled in development environment)
-
A note from our sponsor - InfluxDB
www.influxdata.com | 3 Dec 2023
Index
What are some of the best open-source service-worker projects in JavaScript? This list will help you:
Project | Stars | |
---|---|---|
1 | workbox | 11,849 |
2 | offline-plugin | 4,508 |
3 | StreamSaver.js | 3,710 |
4 | next-pwa | 3,373 |
5 | zip.js | 3,034 |
6 | next-offline | 1,563 |
7 | service-workers | 1,273 |
8 | expenses | 1,202 |
9 | http-server-online | 623 |
10 | replayweb.page | 541 |
11 | wayne | 519 |
12 | self-destroying-sw | 392 |
13 | Ultraviolet | 314 |
14 | sqlite-worker | 163 |
15 | network-idle-callback | 128 |
16 | offline-first-sw | 91 |
17 | Mosque-Screen | 87 |
18 | Surfable-app | 57 |
19 | checkpose | 11 |
20 | sw-extension-audio | 5 |
21 | dlpwait | 2 |
22 | unit-test-service-worker | 1 |