You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+5-11Lines changed: 5 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -419,10 +419,10 @@ This class extends [`EventEmitter`][] from Node.js.
419
419
- `atomics`: (`sync` | `async` | `disabled`) Use the [`Atomics`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics) API for faster communication
420
420
between threads. This is on by default. You can disable `Atomics` globally by
421
421
setting the environment variable `PISCINA_DISABLE_ATOMICS` to `1` .
422
-
If `atomics` is `sync`, it will cause to pause threads (stoping all execution)
422
+
If `atomics` is `sync`, it will cause to pause threads (stopping all execution)
423
423
between tasks. Ideally, threads should wait for all operations to finish before
424
424
returning control to the main thread (avoid having open handles within a thread). If still want to have the possibility
425
-
of having open handles or handle asynchrnous tasks, you can set the environment variable `PISCINA_ENABLE_ASYNC_ATOMICS` to `1` or setting `options.atomics` to `async`.
425
+
of having open handles or handle asynchronous tasks, you can set the environment variable `PISCINA_ENABLE_ASYNC_ATOMICS` to `1` or setting `options.atomics` to `async`.
426
426
427
427
> **Note**: The `async` mode comes with performance penalties and can lead to undesired behaviour if open handles are not tracked correctly.
428
428
@@ -690,8 +690,8 @@ Provides the current version of this library as a semver string.
690
690
691
691
By default, any value returned by a worker function will be cloned when
692
692
returned back to the Piscina pool, even if that object is capable of
693
-
being transfered. The `Piscina.move()` method can be used to wrap and
694
-
mark transferable values such that they will by transfered rather than
693
+
being transferred. The `Piscina.move()` method can be used to wrap and
694
+
mark transferable values such that they will be transferred rather than
695
695
cloned.
696
696
697
697
The `value` may be any object supported by Node.js to be transferable
@@ -710,7 +710,7 @@ The `move()` method will throw if the `value` is not transferable.
710
710
711
711
The object returned by the `move()` method should not be set as a
712
712
nested value in an object. If it is used, the `move()` object itself
713
-
will be cloned as opposed to transfering the object it wraps.
713
+
will be cloned as opposed to transferring the object it wraps.
714
714
715
715
#### Interface: `Transferable`
716
716
@@ -991,12 +991,6 @@ Piscina development was initially sponsored by [NearForm Research][].
991
991
992
992
Looking to support the development of Piscina? Consider sponsoring us on [Open Collective](https://opencollective.com/piscinajs). We appreciate all levels of support!
We prioritize the security of our users and ensure that our library is as secure as possible. Currently, we provide security updates primarily for the latest major version of Piscina.
6
+
7
+
Older versions might receive security updates depending on the severity of the vulnerability and the maintainers' bandwidth, but this is not guaranteed.
8
+
9
+
| Version | Supported |
10
+
| ------- | ------------------ |
11
+
| 6.x-rc | ⚠️ |
12
+
| 5.x |:white_check_mark:|
13
+
| 4.x |:white_check_mark:|
14
+
| 3.x |:x:|
15
+
16
+
17
+
## Scope & Threat Model
18
+
19
+
Piscina is a fast, efficient Node.js Worker Thread Pool implementation. Due to the nature of offloading tasks to separate threads, we are particularly interested in vulnerabilities related to:
20
+
21
+
***Thread Isolation Bypass:** Cross-thread data leakage or unexpected state sharing between separate worker threads.
22
+
***Arbitrary Code Execution (ACE):** Ability for an attacker to manipulate the `filename` or task execution parameters to run unauthorized code.
23
+
***Denial of Service (DoS):** Exploits capable of locking up the main thread, bypassing `maxQueue` constraints, or exhausting memory resources in ways the library intends to prevent.
24
+
25
+
## Reporting a Vulnerability
26
+
27
+
👮 **Responsible Disclosure**
28
+
29
+
**Do not open public issues that might have security implications.** It is critical that security-related issues are reported privately so we have time to address them before they become public knowledge.
30
+
31
+
Individuals who find potential vulnerabilities in Piscina are invited to report them privately using the following channels:
32
+
33
+
1.**GitHub Security Advisories:** You can privately report a vulnerability directly via the [GitHub Security Advisory feature](https://github.com/piscinajs/piscina/security/advisories/new) on the Piscina repository.
34
+
35
+
### What to Include in the Report
36
+
37
+
To help us properly address the issue, please include the following in your report:
38
+
39
+
- A detailed description of the vulnerability and its potential impact.
40
+
- Steps to reproduce the issue (a minimal reproduction repository or code snippet is highly appreciated).
41
+
- The version(s) of `piscina` and `Node.js` affected.
42
+
- Any potential mitigation or workarounds you might have found.
43
+
44
+
## Disclosure Policy
45
+
46
+
When you report a vulnerability, we will strive to follow this process:
47
+
48
+
1.**Acknowledgement:** We will acknowledge receipt of your vulnerability report within 3 working days.
49
+
2.**Triage:** We will triage the issue, confirm the vulnerability, and determine its severity.
50
+
3.**Patching:** We will work on a patch to address the vulnerability in a private fork.
51
+
4.**Release:** A new version of the package will be released with the patch.
52
+
5.**Public Disclosure:** Once the fix is released, we will publish a public security advisory on GitHub, giving you proper credit for the discovery (unless you prefer to remain anonymous).
53
+
54
+
We ask that you operate in good faith and refrain from sharing the vulnerability publicly until a fix has been released and the official advisory is published.
Copy file name to clipboardExpand all lines: docs/docs/Introduction.md
-7Lines changed: 0 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,10 +31,3 @@ With worker threads now a well-established feature in Node.js, Piscina aims to b
31
31
## Sponsors
32
32
33
33
Looking to support the development of Piscina? Consider sponsoring us on [Open Collective](https://opencollective.com/piscinajs). We appreciate all levels of support!
Copy file name to clipboardExpand all lines: docs/docs/api-reference/class.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -54,10 +54,10 @@ This class extends [`EventEmitter`](https://nodejs.org/api/events.html) from Nod
54
54
-`atomics`: (`sync` | `async` | `disabled`) Use the [`Atomics`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Atomics) API for faster communication
55
55
between threads. This is on by default. You can disable `Atomics` globally by
56
56
setting the environment variable `PISCINA_DISABLE_ATOMICS` to `1` .
57
-
If `atomics` is `sync`, it will cause to pause threads (stoping all execution)
57
+
If `atomics` is `sync`, it will cause to pause threads (stopping all execution)
58
58
between tasks. Ideally, threads should wait for all operations to finish before
59
59
returning control to the main thread (avoid having open handles within a thread). If still want to have the possibility
60
-
of having open handles or handle asynchrnous tasks, you can set the environment variable `PISCINA_ENABLE_ASYNC_ATOMICS` to `1` or setting `options.atomics` to `async`.
60
+
of having open handles or handle asynchronous tasks, you can set the environment variable `PISCINA_ENABLE_ASYNC_ATOMICS` to `1` or setting `options.atomics` to `async`.
61
61
62
62
:::info
63
63
**Note**: The `async` mode comes with performance penalties and can lead to undesired behaviour if open handles are not tracked correctly.
@@ -113,7 +113,7 @@ This class extends [`EventEmitter`](https://nodejs.org/api/events.html) from Nod
113
113
114
114
:::info
115
115
**Note on Explicit Resource Management**: Piscina does has support for `Symbol.dispose` and `Symbol.asyncDispose` for explicit resource management for its usage with the `using` keyword.
116
-
This is only avaiable on Node.js 24 and higher.
116
+
This is only available on Node.js 24 and higher.
117
117
118
118
For more information, see the [Explicit Resource Management](https://github.com/tc39/proposal-explicit-resource-management).
0 commit comments