tywrap 0.1.2 → 0.2.1

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.
Files changed (93) hide show
  1. package/README.md +11 -4
  2. package/dist/index.d.ts +20 -4
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +22 -2
  5. package/dist/index.js.map +1 -1
  6. package/dist/runtime/base.d.ts +17 -7
  7. package/dist/runtime/base.d.ts.map +1 -1
  8. package/dist/runtime/base.js +18 -1
  9. package/dist/runtime/base.js.map +1 -1
  10. package/dist/runtime/bounded-context.d.ts +252 -0
  11. package/dist/runtime/bounded-context.d.ts.map +1 -0
  12. package/dist/runtime/bounded-context.js +454 -0
  13. package/dist/runtime/bounded-context.js.map +1 -0
  14. package/dist/runtime/bridge-protocol.d.ts +167 -0
  15. package/dist/runtime/bridge-protocol.d.ts.map +1 -0
  16. package/dist/runtime/bridge-protocol.js +247 -0
  17. package/dist/runtime/bridge-protocol.js.map +1 -0
  18. package/dist/runtime/disposable.d.ts +40 -0
  19. package/dist/runtime/disposable.d.ts.map +1 -0
  20. package/dist/runtime/disposable.js +49 -0
  21. package/dist/runtime/disposable.js.map +1 -0
  22. package/dist/runtime/http-io.d.ts +91 -0
  23. package/dist/runtime/http-io.d.ts.map +1 -0
  24. package/dist/runtime/http-io.js +195 -0
  25. package/dist/runtime/http-io.js.map +1 -0
  26. package/dist/runtime/http.d.ts +47 -13
  27. package/dist/runtime/http.d.ts.map +1 -1
  28. package/dist/runtime/http.js +55 -74
  29. package/dist/runtime/http.js.map +1 -1
  30. package/dist/runtime/node.d.ts +142 -28
  31. package/dist/runtime/node.d.ts.map +1 -1
  32. package/dist/runtime/node.js +321 -168
  33. package/dist/runtime/node.js.map +1 -1
  34. package/dist/runtime/optimized-node.d.ts +19 -125
  35. package/dist/runtime/optimized-node.d.ts.map +1 -1
  36. package/dist/runtime/optimized-node.js +19 -550
  37. package/dist/runtime/optimized-node.js.map +1 -1
  38. package/dist/runtime/pooled-transport.d.ts +131 -0
  39. package/dist/runtime/pooled-transport.d.ts.map +1 -0
  40. package/dist/runtime/pooled-transport.js +175 -0
  41. package/dist/runtime/pooled-transport.js.map +1 -0
  42. package/dist/runtime/process-io.d.ts +204 -0
  43. package/dist/runtime/process-io.d.ts.map +1 -0
  44. package/dist/runtime/process-io.js +695 -0
  45. package/dist/runtime/process-io.js.map +1 -0
  46. package/dist/runtime/pyodide-io.d.ts +155 -0
  47. package/dist/runtime/pyodide-io.d.ts.map +1 -0
  48. package/dist/runtime/pyodide-io.js +397 -0
  49. package/dist/runtime/pyodide-io.js.map +1 -0
  50. package/dist/runtime/pyodide.d.ts +51 -19
  51. package/dist/runtime/pyodide.d.ts.map +1 -1
  52. package/dist/runtime/pyodide.js +57 -186
  53. package/dist/runtime/pyodide.js.map +1 -1
  54. package/dist/runtime/safe-codec.d.ts +81 -0
  55. package/dist/runtime/safe-codec.d.ts.map +1 -0
  56. package/dist/runtime/safe-codec.js +345 -0
  57. package/dist/runtime/safe-codec.js.map +1 -0
  58. package/dist/runtime/transport.d.ts +186 -0
  59. package/dist/runtime/transport.d.ts.map +1 -0
  60. package/dist/runtime/transport.js +86 -0
  61. package/dist/runtime/transport.js.map +1 -0
  62. package/dist/runtime/validators.d.ts +131 -0
  63. package/dist/runtime/validators.d.ts.map +1 -0
  64. package/dist/runtime/validators.js +219 -0
  65. package/dist/runtime/validators.js.map +1 -0
  66. package/dist/runtime/worker-pool.d.ts +196 -0
  67. package/dist/runtime/worker-pool.d.ts.map +1 -0
  68. package/dist/runtime/worker-pool.js +371 -0
  69. package/dist/runtime/worker-pool.js.map +1 -0
  70. package/dist/utils/codec.d.ts.map +1 -1
  71. package/dist/utils/codec.js +120 -1
  72. package/dist/utils/codec.js.map +1 -1
  73. package/package.json +2 -2
  74. package/runtime/python_bridge.py +30 -3
  75. package/runtime/safe_codec.py +344 -0
  76. package/src/index.ts +48 -5
  77. package/src/runtime/base.ts +18 -26
  78. package/src/runtime/bounded-context.ts +608 -0
  79. package/src/runtime/bridge-protocol.ts +319 -0
  80. package/src/runtime/disposable.ts +65 -0
  81. package/src/runtime/http-io.ts +244 -0
  82. package/src/runtime/http.ts +71 -117
  83. package/src/runtime/node.ts +460 -217
  84. package/src/runtime/optimized-node.ts +19 -761
  85. package/src/runtime/pooled-transport.ts +252 -0
  86. package/src/runtime/process-io.ts +902 -0
  87. package/src/runtime/pyodide-io.ts +485 -0
  88. package/src/runtime/pyodide.ts +75 -215
  89. package/src/runtime/safe-codec.ts +443 -0
  90. package/src/runtime/transport.ts +273 -0
  91. package/src/runtime/validators.ts +241 -0
  92. package/src/runtime/worker-pool.ts +498 -0
  93. package/src/utils/codec.ts +126 -1
@@ -1,128 +1,22 @@
1
1
  /**
2
- * Optimized Node.js Runtime Bridge with Connection Pooling and Memory Management
3
- * High-performance Python subprocess management for production workloads
2
+ * @deprecated Import from './node.js' instead.
3
+ *
4
+ * OptimizedNodeBridge has been unified with NodeBridge. The NodeBridge class
5
+ * now supports both single-process mode (default) and multi-process pooling
6
+ * via the minProcesses/maxProcesses options.
7
+ *
8
+ * Migration:
9
+ * ```typescript
10
+ * // Before
11
+ * import { OptimizedNodeBridge, ProcessPoolOptions } from './optimized-node.js';
12
+ * const bridge = new OptimizedNodeBridge({ minProcesses: 2, maxProcesses: 4 });
13
+ *
14
+ * // After
15
+ * import { NodeBridge, NodeBridgeOptions } from './node.js';
16
+ * const bridge = new NodeBridge({ minProcesses: 2, maxProcesses: 4 });
17
+ * ```
18
+ *
19
+ * This file is maintained for backward compatibility only.
4
20
  */
5
- import { RuntimeBridge } from './base.js';
6
- interface ProcessPoolOptions {
7
- minProcesses?: number;
8
- maxProcesses?: number;
9
- maxIdleTime?: number;
10
- maxRequestsPerProcess?: number;
11
- pythonPath?: string;
12
- scriptPath?: string;
13
- virtualEnv?: string | undefined;
14
- cwd?: string;
15
- timeoutMs?: number;
16
- maxLineLength?: number;
17
- enableJsonFallback?: boolean;
18
- enableCache?: boolean;
19
- env?: Record<string, string | undefined>;
20
- warmupCommands?: Array<{
21
- method: string;
22
- params: unknown;
23
- }>;
24
- }
25
- interface OptimizedBridgeStats {
26
- totalRequests: number;
27
- totalTime: number;
28
- cacheHits: number;
29
- poolHits: number;
30
- poolMisses: number;
31
- processSpawns: number;
32
- processDeaths: number;
33
- memoryPeak: number;
34
- averageTime: number;
35
- cacheHitRate: number;
36
- }
37
- interface OptimizedBridgeStatsSnapshot extends OptimizedBridgeStats {
38
- poolSize: number;
39
- busyWorkers: number;
40
- memoryUsage: NodeJS.MemoryUsage;
41
- workerStats: Array<{
42
- id: string;
43
- requestCount: number;
44
- averageTime: number;
45
- errorCount: number;
46
- busy: boolean;
47
- pendingRequests: number;
48
- }>;
49
- }
50
- export declare class OptimizedNodeBridge extends RuntimeBridge {
51
- private processPool;
52
- private roundRobinIndex;
53
- private cleanupTimer?;
54
- private options;
55
- private emitter;
56
- private disposed;
57
- private stats;
58
- constructor(options?: ProcessPoolOptions);
59
- init(): Promise<void>;
60
- call<T = unknown>(module: string, functionName: string, args: unknown[], kwargs?: Record<string, unknown>): Promise<T>;
61
- instantiate<T = unknown>(module: string, className: string, args: unknown[], kwargs?: Record<string, unknown>): Promise<T>;
62
- callMethod<T = unknown>(handle: string, methodName: string, args: unknown[], kwargs?: Record<string, unknown>): Promise<T>;
63
- disposeInstance(handle: string): Promise<void>;
64
- /**
65
- * Execute request with intelligent process selection
66
- */
67
- private executeRequest;
68
- /**
69
- * Select optimal worker based on load and performance
70
- */
71
- private selectOptimalWorker;
72
- /**
73
- * Wait for any worker to become available
74
- */
75
- private waitForAvailableWorker;
76
- /**
77
- * Send request to specific worker
78
- */
79
- private sendToWorker;
80
- private quarantineWorker;
81
- /**
82
- * Spawn new worker process with optimizations
83
- */
84
- private spawnProcess;
85
- /**
86
- * Setup event handlers for worker process
87
- */
88
- private setupProcessHandlers;
89
- /**
90
- * Handle worker process exit
91
- */
92
- private handleWorkerExit;
93
- /**
94
- * Warm up processes with configured commands
95
- */
96
- private warmupProcesses;
97
- private safeCacheKey;
98
- /**
99
- * Heuristic to determine if function result should be cached
100
- */
101
- private isPureFunctionCandidate;
102
- /**
103
- * Update performance statistics
104
- */
105
- private updateStats;
106
- /**
107
- * Get performance statistics
108
- */
109
- getStats(): OptimizedBridgeStatsSnapshot;
110
- /**
111
- * Cleanup idle processes
112
- */
113
- private cleanup;
114
- /**
115
- * Gracefully terminate a worker
116
- */
117
- private terminateWorker;
118
- /**
119
- * Start cleanup scheduler
120
- */
121
- private startCleanupScheduler;
122
- /**
123
- * Dispose all resources
124
- */
125
- dispose(): Promise<void>;
126
- }
127
- export {};
21
+ export { NodeBridge as OptimizedNodeBridge, type NodeBridgeOptions as ProcessPoolOptions } from './node.js';
128
22
  //# sourceMappingURL=optimized-node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"optimized-node.d.ts","sourceRoot":"","sources":["../../src/runtime/optimized-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"optimized-node.d.ts","sourceRoot":"","sources":["../../src/runtime/optimized-node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,KAAK,iBAAiB,IAAI,kBAAkB,EAAE,MAAM,WAAW,CAAC"}