concurrent-c-node 0.4.1__tar.gz → 0.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: concurrent-c-node
3
- Version: 0.4.1
3
+ Version: 0.6.0
4
4
  Summary: JavaScript and npm packages from Python over the Concurrent-C bridge: one spawned Node child per domain, host-controlled lifetime.
5
5
  License: MIT
6
6
  Project-URL: Repository, https://github.com/sreekotay/concurrent-c
@@ -17,6 +17,10 @@ Part of [Concurrent-C](https://github.com/sreekotay/concurrent-c) — a
17
17
  strict C11-superset preprocessor: `.ccs` lowers to plain C and compiles
18
18
  with your host C compiler. (This bridge itself is pure Python.)
19
19
 
20
+ Map of the three boundaries (CC hosts Python, native modules, this
21
+ package bridge):
22
+ [JS / Python interop](https://github.com/sreekotay/concurrent-c/blob/main/docs/js-py-modules.md).
23
+
20
24
  ```python
21
25
  import cc_node
22
26
 
@@ -57,6 +61,11 @@ Import stays `import cc_node`. Examples ship in the wheel. The mirror of
57
61
  the handle ledger and `release()` drops one early; `destroy()` is
58
62
  idempotent, every door answers `bridge is closed` after, and the
59
63
  child dies with the bridge (and on host exit, via stdin EOF).
64
+ Teardown is **cooperative** (farewell `close` + drain, then wait /
65
+ kill-fallback): in-flight calls may still return a correct value.
66
+ Hard child death (`SIGKILL`, `process.abort`) is a different contract —
67
+ in-flight ops must reject. See
68
+ [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md).
60
69
 
61
70
  ## Async is free
62
71
 
@@ -157,10 +166,13 @@ A worked tour (builtin Node modules, chains, callbacks, thenables,
157
166
  buffers — no npm install needed):
158
167
  `python -m cc_node.examples.use_node`.
159
168
 
160
- Adversarial multi-child storm (fanout, callback blizzard, shm hail,
161
- teardown derby): [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
162
- — `./stress/bridge/run.sh` (`CHAOS_SCALE=full` for bigger N; latency demos
163
- stay in `cc_node/examples/`).
169
+ Adversarial multi-child storm (escaped closures, cooperative
170
+ fanout-destroy, abort inject, handle-leak / RSS soaks):
171
+ [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
172
+ `./stress/bridge/run.sh` (`CHAOS_SCALE=full` / `soak` for bigger N).
173
+ Mode catalog + destroy contracts:
174
+ [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md)
175
+ (latency demos stay in `cc_node/examples/`).
164
176
 
165
177
  And when the hot path is YOUR code rather than an npm package, skip the
166
178
  wire entirely: a page of Concurrent-C (or C) exports as a native module
@@ -6,6 +6,10 @@ Part of [Concurrent-C](https://github.com/sreekotay/concurrent-c) — a
6
6
  strict C11-superset preprocessor: `.ccs` lowers to plain C and compiles
7
7
  with your host C compiler. (This bridge itself is pure Python.)
8
8
 
9
+ Map of the three boundaries (CC hosts Python, native modules, this
10
+ package bridge):
11
+ [JS / Python interop](https://github.com/sreekotay/concurrent-c/blob/main/docs/js-py-modules.md).
12
+
9
13
  ```python
10
14
  import cc_node
11
15
 
@@ -46,6 +50,11 @@ Import stays `import cc_node`. Examples ship in the wheel. The mirror of
46
50
  the handle ledger and `release()` drops one early; `destroy()` is
47
51
  idempotent, every door answers `bridge is closed` after, and the
48
52
  child dies with the bridge (and on host exit, via stdin EOF).
53
+ Teardown is **cooperative** (farewell `close` + drain, then wait /
54
+ kill-fallback): in-flight calls may still return a correct value.
55
+ Hard child death (`SIGKILL`, `process.abort`) is a different contract —
56
+ in-flight ops must reject. See
57
+ [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md).
49
58
 
50
59
  ## Async is free
51
60
 
@@ -146,10 +155,13 @@ A worked tour (builtin Node modules, chains, callbacks, thenables,
146
155
  buffers — no npm install needed):
147
156
  `python -m cc_node.examples.use_node`.
148
157
 
149
- Adversarial multi-child storm (fanout, callback blizzard, shm hail,
150
- teardown derby): [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
151
- — `./stress/bridge/run.sh` (`CHAOS_SCALE=full` for bigger N; latency demos
152
- stay in `cc_node/examples/`).
158
+ Adversarial multi-child storm (escaped closures, cooperative
159
+ fanout-destroy, abort inject, handle-leak / RSS soaks):
160
+ [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
161
+ `./stress/bridge/run.sh` (`CHAOS_SCALE=full` / `soak` for bigger N).
162
+ Mode catalog + destroy contracts:
163
+ [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md)
164
+ (latency demos stay in `cc_node/examples/`).
153
165
 
154
166
  And when the hot path is YOUR code rather than an npm package, skip the
155
167
  wire entirely: a page of Concurrent-C (or C) exports as a native module
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: concurrent-c-node
3
- Version: 0.4.1
3
+ Version: 0.6.0
4
4
  Summary: JavaScript and npm packages from Python over the Concurrent-C bridge: one spawned Node child per domain, host-controlled lifetime.
5
5
  License: MIT
6
6
  Project-URL: Repository, https://github.com/sreekotay/concurrent-c
@@ -17,6 +17,10 @@ Part of [Concurrent-C](https://github.com/sreekotay/concurrent-c) — a
17
17
  strict C11-superset preprocessor: `.ccs` lowers to plain C and compiles
18
18
  with your host C compiler. (This bridge itself is pure Python.)
19
19
 
20
+ Map of the three boundaries (CC hosts Python, native modules, this
21
+ package bridge):
22
+ [JS / Python interop](https://github.com/sreekotay/concurrent-c/blob/main/docs/js-py-modules.md).
23
+
20
24
  ```python
21
25
  import cc_node
22
26
 
@@ -57,6 +61,11 @@ Import stays `import cc_node`. Examples ship in the wheel. The mirror of
57
61
  the handle ledger and `release()` drops one early; `destroy()` is
58
62
  idempotent, every door answers `bridge is closed` after, and the
59
63
  child dies with the bridge (and on host exit, via stdin EOF).
64
+ Teardown is **cooperative** (farewell `close` + drain, then wait /
65
+ kill-fallback): in-flight calls may still return a correct value.
66
+ Hard child death (`SIGKILL`, `process.abort`) is a different contract —
67
+ in-flight ops must reject. See
68
+ [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md).
60
69
 
61
70
  ## Async is free
62
71
 
@@ -157,10 +166,13 @@ A worked tour (builtin Node modules, chains, callbacks, thenables,
157
166
  buffers — no npm install needed):
158
167
  `python -m cc_node.examples.use_node`.
159
168
 
160
- Adversarial multi-child storm (fanout, callback blizzard, shm hail,
161
- teardown derby): [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
162
- — `./stress/bridge/run.sh` (`CHAOS_SCALE=full` for bigger N; latency demos
163
- stay in `cc_node/examples/`).
169
+ Adversarial multi-child storm (escaped closures, cooperative
170
+ fanout-destroy, abort inject, handle-leak / RSS soaks):
171
+ [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
172
+ `./stress/bridge/run.sh` (`CHAOS_SCALE=full` / `soak` for bigger N).
173
+ Mode catalog + destroy contracts:
174
+ [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md)
175
+ (latency demos stay in `cc_node/examples/`).
164
176
 
165
177
  And when the hot path is YOUR code rather than an npm package, skip the
166
178
  wire entirely: a page of Concurrent-C (or C) exports as a native module
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "concurrent-c-node"
7
- version = "0.4.1"
7
+ version = "0.6.0"
8
8
  description = "JavaScript and npm packages from Python over the Concurrent-C bridge: one spawned Node child per domain, host-controlled lifetime."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"