
egeominotti/bunqueue
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
⚡ Bunの高性能ジョブキュー。SQLiteはデフォルトで、スケール時にはPostgreSQLのマルチブローカー対応。DLQ、cron、SQLite S3バックアップ、ネイティブMCP。Redisは使いません。
概要
Bunの高性能ジョブキュー。メモリまたは1ファイルのSQLite;スケール時にはPostgreSQL 15–18のマルチブローカー。DLQ、cron、SQLite S3バックアップ、ネイティブMCP。AIエージェントと自動化向けに構築されています。Redisはありません。 ドキュメント ・ クイックスタート ・ ベンチマーク ・ npm それだけです。キュー+ワーカーは1つのオブジェクトにまとめられ、単一のSQLiteファイルに永続化されました。Redisも設定もセットアップもありません。msgpackrは唯一のランタイム依存関係です。cron、SQLite、S3、HTTP、WebSocketはBunの組み込みを使っています。 キューはスタンドアロンサーバーとしても動作します。メモリはゼロ設定のデフォルトです。SQLiteはゼロインフラストラクチャの永続オプションです: 複数のアクティブブローカーの場合、リポジトリにはPostgreSQL 18.6にピン留めされたトポロジーが含まれています: 1つのデータベース/名前空間に対して2つのブローカーを起動します。PostgreSQLはサーバー専用です。組み込みモードではメモリやSQLiteを使い続けます。パスワードが変更された際には両方のCompose値を提供し、URL内のパーセンテージエンコード文字のみを割り当てます。MySQLはサポートされていません。
概要(AI 翻訳)
Bunの高性能ジョブキュー。メモリまたは1ファイルのSQLite;スケール時のPostgreSQL 15–18マルチブローカー。 DLQ、cron、SQLite S3バックアップ、ネイティブMCPです。AIエージェントと自動化向けに構築されています。Redisはありません。
資料・ クイックスタート · ビデオコース · ベンチマーク · NPM
クイックスタート
最初の仕事は約1分後に始まります。Bunではキューはアプリ内で実行されますが、 サーバーから始めましょう:
それだけです:Redisも設定もセットアップもありません。ワーカーはさらに仕事を待ち続けています
Ctrl+Cで停止するまでは。この例はジョブをメモリに保持します。パス
dataPath: './jobs.db'をキューに送り、ワーカーはそれらを1つに永続させる
SQLiteファイル。msgpackrは唯一のランタイム依存関係です。cron、SQLite、S3、HTTPおよび
WebSocketはBunの内蔵機能を使います。
バンにはないの?サーバーを起動して、どこからでも接続して
サーバーはDockerで起動します(Bunは不要)。Bunがインストールされている場合は、
bunx bunqueue start --host 127.0.0.1 --data-path ./bunqueue.db:
次に、別の端末でジョブを追加し、Node.jsから処理します:
Deno、Python、PHP、Go、Rust、Elixirも同じ3つのステップを踏みます:参照 各言語ごとにクイックスタート。
このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。
README
以下は原文 README の抜粋です。原文を見る。
High-performance job queue for Bun. Memory or one-file SQLite; PostgreSQL 15–18 multi-broker when you scale. DLQ, cron, SQLite S3 backups, and native MCP. Built for AI agents and automation. No Redis.
Documentation · Quick Start · Video course · Benchmarks · npm
Quickstart
Your first job in about a minute. On Bun the queue runs inside your app, with no server to start:
bun add bunqueue
// jobs.ts
import { Queue, Worker } from 'bunqueue/client';
const queue = new Queue('emails', { embedded: true });
const worker = new Worker(
'emails',
async (job) => {
console.log('Processing:', job.data.to);
return { sent: true };
},
{ embedded: true }
);
worker.on('error', (error) => console.error(error));
await queue.add('welcome', { to: '[email protected]' });
bun jobs.ts
# Processing: [email protected]
That’s it: no Redis, no config, no setup. The worker keeps waiting for more jobs
until you stop it with Ctrl+C. The example keeps jobs in memory; pass
dataPath: './jobs.db' to the queue and the worker to persist them in one
SQLite file. msgpackr is the only runtime dependency; cron, SQLite, S3, HTTP and
WebSocket use Bun’s built-ins.
Not on Bun? Run the server, connect from anywhere
Start the server with Docker (no Bun needed) or, if Bun is installed, with
bunx bunqueue start --host 127.0.0.1 --data-path ./bunqueue.db:
docker run -d --name bunqueue \
--restart unless-stopped \
-p 127.0.0.1:6789:6789 \
-p 127.0.0.1:6790:6790 \
-v bunqueue-data:/app/data \
egeominotti/bunqueue:alpine
curl --fail http://127.0.0.1:6790/health
インストール
docker run -d --name bunqueue \設定
// Claude Desktop / Cursor / Windsurf
{
"mcpServers": {
"bunqueue": {
"command": "bunx",
"args": ["--package=bunqueue", "bunqueue-mcp"],
"env": { "BUNQUEUE_MCP_PROFILE": "agent" }
}
}
}