chunk-process - チャンクベースの並列処理ライブラリ

Product information

Free to use

Release date

Released at 2025年11月17日

chunk-process は、大量の非同期タスクを効率的に処理するためのTypeScriptライブラリです。APIのレート制限を守りながら、メモリやCPUリソースを適切に管理しながら、バッチ単位で並列処理を行います。Before:const results = [] for (const item of items) { const result = await processItem(item) results.push(result) }After:await batchProcess(userIds, async (userId) => { return await fetchUserDataFromAPI(userId) }, { batchSize: 5 })

Product info

tools

Background

外部APIを大量に呼び出す必要があるプロジェクトで、レート制限に引っかからないようにしながら効率的に処理する方法を探していました。Promise.all() だと全部同時に実行されてレート制限に引っかかるし、for...of で順次処理すると時間がかかりすぎます。

具体的には、AWSのCloudFrontを一括更新するスクリプトを作る際に、この問題の解決策が必要になりました。「N件ずつ並列で処理して、終わったら次のN件に進む」という処理パターンが欲しくなり、開発することに。当初は逐次処理のみのライブラリでしたが、現在はNode.js側のAPIで対応できる部分も増えたため、Chunk作成とバッチ処理の実施の2点にフォーカスしたライブラリへとリニューアルしています。

Architecture

  • TypeScript: 型安全性を重視
  • Vite: ビルドツール
  • Vitest: テストフレームワーク
  • TypeDoc: APIドキュメント生成
  • Zero Dependencies: 依存関係なしで軽量