Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools oft miss.
@zlepper/worker-threads-rpc
Advanced tools
Provides a connection implementation for NodeJS' worker_threads
.
First install the library:
npm install --save @zlepper/rpc @zlepper/worker-threads-rpc
This sample shows how to implement a simple calculator that runs in a worker thread.
Start by creating the actual class that has the logic that should be run in your worker:
// calculator.ts
export class Calculator {
public add(a: number, b: number): number {
return a + b;
}
public subtract(a: number, b: number): number {
return a - b;
}
}
Next create the worker initialization code:
// worker.ts
import { startWorkerProvider } from '@zlepper/rpc';
import { WorkerThreadServerConnection } from '@zlepper/worker-threads-rpc';
import { parentPort } from 'worker_threads';
import { Calculator } from './calculator';
// Check if we actually are in a worker thread. (Required to satisfy TypeScript strict null checks.
// You can leave this out if you don't use TypeScript or don't have strict null checks enabled.
if (parentPort) {
// Create a wrapper around the connection. The specific wrapper class
// depends on which worker model you are using.
const connection = new WorkerThreadServerConnection(parentPort);
// Then provide the actual class you want to wrap.
startWorkerProvider(new Calculator(), connection);
}
Lastly in your main thread: Start the worker and connect to it:
// main.ts
import { wrapBackgroundService } from '@zlepper/rpc';
import { WorkerThreadClientConnection } from '@zlepper/worker-threads-rpc';
import { Worker } from 'worker_threads';
import { Calculator } from './calculator';
// First start the worker itself
const workerThread = new Worker('./worker.js');
// Wrap the connection, the class is again specific to the worker model
// you wish to use.
const connection = new WorkerThreadClientConnection(workerThread);
// Lastly access the wrapped "instance" of your class.
const wrapper = wrapBackgroundService<Calculator>(connection);
console.log(await wrapper.add(1, 2)); // Logs '3'
console.log(await wrapper.subtract(2, 1)); // Logs '1'
Also check the full sample here.
FAQs
Unknown package
We found that @zlepper/worker-threads-rpc 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
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools oft miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.