Polyweave

@polyweave/pool (1.0.3)

Published 2026-07-10 20:53:10 +00:00 by Dvorak

Installation

@polyweave:registry=https://hub.kl1.tenere.ai/api/packages/Polyweave/npm/
npm install @polyweave/pool@1.0.3
"@polyweave/pool": "1.0.3"

About this package

Pool

Shared scheduling and requester pooling utilities for Polyweave.

Synopsis

import { createSharedScheduler, createQueuedRequester, createRequesterPool } from '@polyweave/pool';

const scheduler = createSharedScheduler({ concurrency: 3 });

function makeRequest(prompt, done) {
  done(null, `response: ${prompt}`);
}

const queued = createQueuedRequester(makeRequest, scheduler);

queued('hello', (err, result) => {
  console.log(result); // 'response: hello'
});

const pool = createRequesterPool({
  createRequester: (i) => makeRequest,
  size: 4,
  scheduler
});

Install

npm install @polyweave/pool

Description

Pool provides shared scheduling, pauseable request queues, and round-robin requester pools. The scheduler enforces a concurrency cap and supports time-based pausing for rate-limit compliance.

API

createSharedScheduler(options)

Create a concurrency-capped task scheduler.

Parameters:

  • options.concurrency: max simultaneous tasks (default 1, must be >= 1)

Returns { schedule, pauseUntil, pauseFor, getActive, getQueueLength }.

createQueuedRequester(requester, scheduler)

Wrap a requester function to enqueue through a scheduler. Returns the requester unchanged if no scheduler is provided.

createRequesterPool(options)

Create a round-robin pool of requesters.

Parameters:

  • options.createRequester(index): factory function called for each pool slot
  • options.size: pool size (default 1)
  • options.scheduler: optional scheduler for concurrency limiting

Returns a pooled requester function.

Tests

npm test

Tests cover concurrency enforcement, queued execution, round-robin distribution, pause delay, and fuzz concurrency invariants.

Requirements

Node.js 18 or later. ESM only.

License

MIT

Dependencies

Development Dependencies

ID Version
@rigor/core *
fast-check *

Keywords

polyweave pool scheduler queue requester concurrency
Details
npm
2026-07-10 20:53:10 +00:00
342
John Dvorak
SEE LICENSE IN LICENSE
2.6 KiB
Assets (1)
pool-1.0.3.tgz 2.6 KiB
Versions (5) View all
1.0.8 2026-07-11
1.0.5 2026-07-11
1.0.4 2026-07-11
1.0.3 2026-07-10
1.0.2 2026-07-10