https://github.com/html-next/skyrocket
🚀 The web needs more zero-cost-abstractions and parallelism. This is a project to help with that.
https://github.com/html-next/skyrocket
Last synced: 8 months ago
JSON representation
🚀 The web needs more zero-cost-abstractions and parallelism. This is a project to help with that.
- Host: GitHub
- URL: https://github.com/html-next/skyrocket
- Owner: html-next
- Created: 2019-11-25T18:06:34.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-04-04T21:42:48.000Z (about 4 years ago)
- Last Synced: 2025-05-06T17:40:48.341Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 5.59 MB
- Stars: 25
- Watchers: 2
- Forks: 2
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README





# 🚀 Skyrocket
The web needs more zero-cost-abstractions and parallelism. This is a project to help with that.
## Overview
This project is a monorepo using `lerna` and `yarn workspaces` to publish multiple related
packages to `npm`. This directory is unpublished.
The individual published packages are located in the `packages/` and have `private: false`
in their `package.json`. Unpublished packages used for testing or dev-infra are prefixed
with `unpublished_`
To learn more about the individual packages, visit the corresponding package `README`.
## Published Packages
- [🚀🐹@skyrocketjs/ember](./packages/ember/README.md)
An ember-addon which enables your ember-app or ember-addon to have workers built with
`@skyrocketjs/worker` located in a top-level `workers/` directory that are useable by
consuming apps via service-like injection.
Configuration is as easy as adding this package to your app or addon dependencies.
In `Fastboot`, each app instance will get it's own unique worker instances that run
as their own [node worker](https://nodejs.org/api/worker_threads.html). These workers
will be torn down when the app instance is destroyed.
In `testing`, each app instance will get it's own unique `WebWorker` instances. `SharedWorkers`
will be instantiated as `WebWorkers` to ensure encapsulation.
These workers will be torn down when the app instance is destroyed.
- [🚀@skyrocketjs/worker](./packages/worker/README.md)
Provides decorators and base classes for creating both `WebWorkers` and `SharedWorkers`
that abstract away the need for authoring main-thread code or using `postMessage`.
Communication is driven by async APIs that work naturally with `Promise` and `async...await`.
- [🚀@skyrocketjs/schema](./packages/schema/README.md)
A BabelPlugin which parses schema information based on config from encountered classes.
This is reusable by many projects, but won't need to be configured directly for users
of `@skyrocketjs/ember`.
- [🚀@skyrocketjs/service](./packages/service/README.md)
Service wrapper for instantiating workers on the main thread. Meant to be generic but tied
to `Ember` in the current `alpha` while a plan for either synchronous or asynchronous dynamic
imports is devised. The instantiated workers use the schemas produced by for workers built
with `@skyrocketjs/worker` to provide async APIs and event listenting.
- [🚀@skyrocketjs/compiler](./packages/compiler/README.md)
A BroccoliPlugin which takes compiled schemas from `@skyrocketjs/schema` for workers built
with `@skyrocketjs/worker` and produces runnable worker scripts.
This is reusable by many projects, but won't need to be configured directly for users
of `@skyrocketjs/ember`.