
Security News
MCP Steering Committee Launches Official MCP Registry in Preview
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.
A library for Communicating Sequential Processes, built on top of async/await
and the asynchronous iterable interface.
This library requires async/await
and for-await-of
support.
$ npm install --save @jfet/csp
You can find the documentation here.
Below is a trivial example of usage, that plays on the standard ping-pong example.
const { Channel } = require('@jfet/csp');
const timeout = ms => new Promise(resolve => setTimeout(resolve, ms));
const wiff = new Channel();
const waff = new Channel();
const createBall = () => ({ hits: 0, status: '' });
const createBat = async (inbound, outbound) => {
while (true) {
const ball = await inbound.take(); // wait for an incoming ball
ball.hits++;
ball.status = ball.status === 'wiff!' ? 'waff!' : 'wiff!';
console.log(`🎾 Ball hit ${ball.hits} time(s), ${ball.status}`);
await timeout(500); // assume it's going to take a bit to hit the ball
await outbound.put(ball); // smash the ball back
}
};
createBat(waff, wiff); // create a bat that will wiff waffs
createBat(wiff, waff); // create a bat that will waff wiffs
waff.put(createBall());
Channels implement the async iterable interface, so you can transform the following illustrative code:
async function process (inbound, outbound) {
while (true) {
const msg = await inbound.take();
// do stuff with msg
await outbound.put(res);
}
};
into a cleaner version, thanks to the powerful for-await-of
:
async function process (inbound, outbound) {
for await(const msg of inbound) {
// do stuff with msg
await outbound.put(res);
}
};
Thanks to Joe Harlow for his work on this topic. If you are unfamiliar with CSP, I encourage you to see his talk where he describe a simpler version of this library as well.
Contributions are welcomed and appreciated!
Feel free to get in touch if you have any questions.
Please see the LICENSE
file for more information.
FAQs
communicating sequential processes in javascript
The npm package @jfet/csp receives a total of 0 weekly downloads. As such, @jfet/csp popularity was classified as not popular.
We found that @jfet/csp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The MCP Steering Committee has launched the official MCP Registry in preview, a central hub for discovering and publishing MCP servers.
Product
Socket’s new Pull Request Stories give security teams clear visibility into dependency risks and outcomes across scanned pull requests.
Research
/Security News
npm author Qix’s account was compromised, with malicious versions of popular packages like chalk-template, color-convert, and strip-ansi published.