Composable Concurrency Abstractions for JavaScript.
#!/usr/bin/env node
(async () => {
const sporadic = require('sporadic')
const channel = await sporadic.channels.open()
const wasReceivedPromise = sporadic.channels.send(channel, "Hello, World!")
const messagePromise = sporadic.channels.receive(channel)
const promises = [ wasReceivedPromise, messagePromise ]
const [ wasReceived, message ] = await Promise.all(promises)
console.log(wasReceived) // ==> true
console.log(message) // ==> Hello, World!
})()
Through UNPKG (for browsers):
<script src="https://unpkg.com/sporadic/dist/index.js"></script>
Through NPM:
$ npm install sporadic
To install the development snapshot, use npm link
.
For example, on this cloned repository:
$ npm link .
And then, on your project:
$ npm link sporadic
Stable releases are tags in the branch release
. The master
branch here is
only to track the next releases, please don't rely too much on that branch. All
the hard work is made on the development
branch.
For every submodule within this sporadic
library, there's an API documentation
available at the directory docs/
under the filename SUBMODULE.md
, where
SUBMODULE
stands for the submodule provided with this library (yes, I know the
redundancy :joy:). Each submodule corresponds to a concurrency abstraction.
Currently, the following abstractions are implemented:
PRs & Issues are always welcome :house:! Feel free to open one :v:! Happy hacking :computer:!