web-locks
                                
                                 web-locks copied to clipboard
                                
                                    web-locks copied to clipboard
                            
                            
                            
                        Web Locks API 🔒
Web Locks API  
  
  
  
 
Web Locks API
implementation for Node.js based on
worker_threads,
Atomics,
SharedArrayBuffer,
asynchronous functions,
and queue.
See specification: wicg.github.io/web-locks/ and documentation: developer.mozilla.org/en-US/docs/Web/API/Lock
This implementation is a part of Metarhia technology stack, needed for the first pilot project of Node.js application server based on parallel programming and workload micro-isolation. Web Locks API is intended to be merged into Node.js in future.
Features
- Simplest parallel programming primitive to solve a problem of data races and race conditions.
- Node.js and worker_threadssupport.
- Different optimized implementations for certain cases: single-threaded asynchronous locks, multi-threaded locks with a single unifyed API.
Installation
$ npm install web-locks
Usage
await locks.request('Resource name', async lock => {
  // use named resource and release it after return
});
License
This implementation of Web Locks API is MIT licensed.