Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/astroza/reba
Scalable service worker subset for running on server side
https://github.com/astroza/reba
Last synced: about 2 months ago
JSON representation
Scalable service worker subset for running on server side
- Host: GitHub
- URL: https://github.com/astroza/reba
- Owner: astroza
- Created: 2020-10-28T00:04:20.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-05-30T05:33:16.000Z (over 3 years ago)
- Last Synced: 2024-05-02T11:13:47.924Z (5 months ago)
- Language: C++
- Size: 96.7 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Reba
Reba is a Service Worker subset implementation for running on server side.## Features
* Hot reconfiguration by HTTP API: Privileged Isolate to manage WorkerGroups
* Integrated cache system (?)## Plan
* Boost Beast HTTP/1.1 Web Server
* Web Fetch API
* Websocket support
* Web Crypto API
* Basic functions: setTimeout, setInterval## Design
Reba has two essential entities:
* WorkerGroup: A group of threads running the same script. It scales itself automatically based on the group's load.
* Router: A global instance storing the data needed to route an web request to an specific WorkerGroupThere is a special WorkerGroup created when Reba is started
* WorkerGroup Zero: It has a privileged context able to create new WorkerGroups and set routes.The expected behavior of WorkerGroup Zero is:
* Connect to a control plane by Fetch API or Websocket
* Get the configured scripts and routes from the control plane
* Create the needed WorkerGroups
* Poll/wait for changes from the control plane## References
* https://github.com/w3c/ServiceWorker/blob/master/implementation_considerations.md