Skip to content

feat(client): add batch_fetch for concurrent multi-URL fetching#81

Merged
chaliy merged 1 commit intomainfrom
claude/issue-75-batch-fetch
Mar 27, 2026
Merged

feat(client): add batch_fetch for concurrent multi-URL fetching#81
chaliy merged 1 commit intomainfrom
claude/issue-75-batch-fetch

Conversation

@chaliy
Copy link
Copy Markdown
Contributor

@chaliy chaliy commented Mar 27, 2026

What

Add batch_fetch() and batch_fetch_with_options() for fetching multiple URLs concurrently.

Why

Agents frequently need to fetch 5-10 pages to research a topic. Batch fetching reduces round-trips and lets the tool manage concurrency.

How

  • batch_fetch(requests, concurrency) — simple API with default options
  • batch_fetch_with_options(requests, options, concurrency) — full control
  • Uses futures::stream::buffer_unordered for concurrent execution
  • Default concurrency: 5, configurable via parameter
  • Results returned in same order as input requests
  • Each URL processed independently (one failure doesn't affect others)

Risk

  • Low — new functions, no changes to existing behavior
  • Uses existing fetch infrastructure

Checklist

  • Unit tests (multi-URL, partial failure, concurrency, empty input)
  • Clippy clean
  • Docs build clean

Closes #75

Add batch_fetch() and batch_fetch_with_options() that fetch multiple
URLs concurrently with configurable concurrency limit (default: 5).
Each URL processed independently, results returned in input order.

Closes #75
@chaliy chaliy force-pushed the claude/issue-75-batch-fetch branch from 1d0ef49 to c4d8c4e Compare March 27, 2026 03:17
@chaliy chaliy merged commit 17a78dc into main Mar 27, 2026
10 checks passed
@chaliy chaliy deleted the claude/issue-75-batch-fetch branch March 27, 2026 03:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: batch fetch — accept multiple URLs in one call

1 participant