objectbuffer
taskwork
objectbuffer | taskwork | |
---|---|---|
4 | 1 | |
163 | 10 | |
- | - | |
2.9 | 0.0 | |
17 days ago | over 2 years ago | |
TypeScript | TypeScript | |
MIT License | 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.
objectbuffer
-
JavaScript APIs You Don’t Know About
is a great example, which I also tried to (poorly) reimplement myself.
It creates a new data structures that behave as an object for the user but is backed by SharedArrayBuffer in order to support parallel computation over it.
- [0]: https://github.com/Bnaya/objectbuffer
- Web Crypto API
-
isoworker - universal multithreading with main-thread dependencies, 6kB
There is a lot of complexity involved in representing arbitrary javascript objects inside an ArrayBuffer whilst making them thread-safe. I'd first point to a library like objectbuffer. There's also more fixed struct-like options such as Google's FlatBuffers or buffer-backed-object.
taskwork
-
isoworker - universal multithreading with main-thread dependencies, 6kB
Nice! I've done similar experimental work related to multithreading here https://github.com/TimvanScherpenzeel/taskwork. It combines it with a frame scheduler and re-usable web workers that can execute arbitrary tasks.
What are some alternatives?
proposal-atomics-wait-async - "asynchronous atomic wait" for ECMAScript
d2-checklist - Source for www.d2checklist.com, written in Angular and using the Bungie API
isoworker - Isomorphic workerization with context support
comlink - Comlink makes WebWorkers enjoyable.
worktank-loader - WebPack plugin for WorkTank which enables you to execute whole files in a worker pool, transparently.
zip.js - JavaScript library to zip and unzip files supporting multi-core compression, compression streams, zip64, split files and encryption.
worktank - A simple isomorphic library for executing functions inside WebWorkers or Node Threads pools.
wasm-futures-executor - Executor for asynchronous task based on wasm web workers.
rinzler - An autonomous parallel processing engine for the browser.
wireworld-player - A multithreaded web app for loading and simulating instances of the Wireworld cellular automaton