EB

egeominotti/bunqueue

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

590 stars 17 forks 품질 87 트렌드 41MIT

⚡ Bun용 고성능 작업 큐. 기본적으로 SQLite, 확장 시 PostgreSQL 멀티브로커. DLQ, cron, SQLite S3 백업, 그리고 네이티브 MCP를 지원합니다. Redis는 없습니다.

개요

Bun용 고성능 작업 큐. 메모리 또는 단일 파일 SQLite; 확장 시 PostgreSQL 15–18 멀티 브로커. DLQ, cron, SQLite S3 백업, 네이티브 MCP. AI 에이전트와 자동화를 위해 구축됨. Redis는 사용하지 않습니다. 문서 · 빠른 시작 · 벤치마크 · npm 그게 전부입니다. 큐 + 워커를 하나의 객체에 저장하고, 하나의 SQLite 파일로 영속성되었습니다. Redis도, config도, 설정도 없습니다. msgpackr만이 유일한 런타임 의존성입니다; cron, SQLite, S3, HTTP, WebSocket은 Bun의 내장 기능을 사용합니다. 큐는 독립 실행형 서버로도 실행됩니다. 메모리는 제로 구성 기본값이며; SQLite는 제로 인프라 영구 옵션입니다: 여러 활성 브로커의 경우, 저장소에는 PostgreSQL 18.6에 고정된 토폴로지를 포함하고 있습니다: 하나의 데이터베이스/네임스페이스에 대해 두 개의 브로커를 시작합니다. PostgreSQL은 서버 전용이며; 임베디드 모드는 메모리/SQLite를 계속 사용합니다. 비밀번호가 변경될 때 두 개의 Compose 값을 모두 제공하고, URL에 예약된 문자만 백분율로 인코딩하세요. MySQL은 지원되지 않습니다.

개요(AI 번역)

Bun용 고성능 작업 큐. 메모리 또는 단일 파일 SQLite; 확장 시 PostgreSQL 15–18 멀티 브로커.
DLQ, 크론, SQLite S3 백업, 그리고 네이티브 MCP입니다. AI 에이전트와 자동화를 위해 만들어졌습니다. Redis는 없습니다.

문서 · 빠른 시작 · 비디오 강좌 · 벤치마크 · NPM


퀵스타트

첫 작업이 약 1분 후에 도착합니다. Bun에서는 대기열이 앱 안에서 실행되며, 서버 시작:

그게 전부입니다: Redis도 없고, 설정도 없고, 설정도 없습니다. 작업자는 계속 더 많은 작업을 기다립니다 Ctrl+C로 멈출 때까지. 예제는 작업을 메모리에 보관합니다; 패스 dataPath: './jobs.db'를 대기열에 입력하고, 작업자가 이를 하나의 상태로 유지하도록 합니다 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도 같은 세 단계를 밟습니다: 다음을 참조하세요 각 언어별로 빠른 시작.

이 페이지는 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" } } } }