EB

egeominotti/bunqueue

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

590 stars 17 forks 品質 87 トレンド 41MIT

⚡ 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
GitHub で README 全文を見る

インストール

docker run -d --name bunqueue \
MCP 初心者?mcpskill.org のガイドから始めましょう →

設定

// Claude Desktop / Cursor / Windsurf { "mcpServers": { "bunqueue": { "command": "bunx", "args": ["--package=bunqueue", "bunqueue-mcp"], "env": { "BUNQUEUE_MCP_PROFILE": "agent" } } } }