
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
High-performance job queue for Bun & AI agents. SQLite persistence, cron scheduling, priorities, retries, DLQ, webhooks, native MCP server. Zero external dependencies.
High-performance job queue for Bun. Built for AI agents and automation.
Zero external dependencies. MCP-native. TypeScript-first.
Documentation · Benchmarks · npm
bunqueue Dashboard
A visual interface for managing queues, jobs, workers and monitoring in real time. Currently in beta.
https://github.com/user-attachments/assets/e8a8d38e-b4a6-4dc8-8360-876c0f24d116
Want early access? Reach out at egeominotti@gmail.com
| Library | Requires | AI-native |
|---|---|---|
| BullMQ | Redis | No |
| Agenda | MongoDB | No |
| pg-boss | PostgreSQL | No |
| bunqueue | Nothing | Yes |
Queue, Worker, QueueEvents
bunqueue is the first job queue with native MCP support. AI agents get a full-featured scheduler, task queue, and monitoring system — no glue code needed.
HTTP Handlers solve a fundamental problem: an AI agent can schedule jobs and manage queues, but it cannot run a persistent worker. When the agent registers an HTTP handler, bunqueue spawns an embedded Worker that continuously pulls jobs and calls your HTTP endpoint. Responses are saved as results. Failed calls retry automatically via DLQ.
What AI agents can do with bunqueue:
# One command to connect Claude Code
claude mcp add bunqueue -- bunx bunqueue-mcp
// Claude Desktop / Cursor / Windsurf — add to MCP config
{
"mcpServers": {
"bunqueue": {
"command": "bunx",
"args": ["bunqueue-mcp"]
}
}
}
Example agent interactions:
Plugin ecosystem — bunqueue ships with auto-discovery (.mcp.json), a custom Claude Code agent for bunqueue tasks, and installable skills for setup, API reference, and real-world patterns. Drop bunqueue into any project and your AI tools discover it automatically.
Supports embedded (local SQLite) and TCP (remote server) modes. Full MCP documentation →
Great for:
Not ideal for:
If you're already running Redis, BullMQ is great — battle-tested and feature-rich.
bunqueue is for when you don't want to run Redis. SQLite with WAL mode handles surprisingly high throughput for single-node deployments (tested up to 286K ops/sec). You get persistence, priorities, delays, retries, cron jobs, and DLQ — without the operational overhead of another service.
bun add bunqueue
Requires Bun runtime. Node.js is not supported.
bunqueue runs in two modes depending on your architecture:
| Embedded | Server (TCP) | |
|---|---|---|
| How it works | Queue runs inside your process | Standalone server, clients connect via TCP |
| Setup | bun add bunqueue | docker run or bunqueue start |
| Performance | 286K ops/sec | 149K ops/sec |
| Best for | Single-process apps, CLIs, serverless | Multiple workers, separate producer/consumer |
| Scaling | Same process only | Multiple clients across machines |
Everything runs in your process. No server, no network, no setup.
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);
return { sent: true };
},
{ embedded: true }
);
await queue.add('welcome', { to: 'user@example.com' });
Run bunqueue as a standalone server. Multiple workers and producers connect via TCP.
# Start with persistent data
docker run -d -p 6789:6789 -p 6790:6790 \
-v bunqueue-data:/app/data \
ghcr.io/egeominotti/bunqueue:latest
Connect from your app:
import { Queue, Worker } from 'bunqueue/client';
const queue = new Queue('tasks', { connection: { host: 'localhost', port: 6789 } });
const worker = new Worker(
'tasks',
async (job) => {
return { done: true };
},
{ connection: { host: 'localhost', port: 6789 } }
);
await queue.add('process', { data: 'hello' });
One object. Queue + Worker + Routes + Middleware + Cron. Zero boilerplate.
import { Bunqueue } from 'bunqueue/client';
const app = new Bunqueue('notifications', {
embedded: true,
// Route jobs by name
routes: {
'send-email': async (job) => {
console.log(`Email to ${job.data.to}`);
return { sent: true };
},
'send-sms': async (job) => {
console.log(`SMS to ${job.data.to}`);
return { sent: true };
},
},
concurrency: 10,
});
// Middleware — wraps every job (logging, timing, error recovery)
app.use(async (job, next) => {
const start = Date.now();
const result = await next();
console.log(`${job.name} took ${Date.now() - start}ms`);
return result;
});
// Cron — scheduled jobs
await app.cron('daily-report', '0 9 * * *', { type: 'summary' });
await app.every('healthcheck', 30000, { type: 'ping' });
// Events
app.on('completed', (job, result) => console.log(result));
app.on('failed', (job, err) => console.error(err));
// Add jobs
await app.add('send-email', { to: 'alice@example.com' });
await app.add('send-sms', { to: '+1234567890' });
// Graceful shutdown
await app.close();
Works with both embedded and TCP mode. Simple Mode docs →
SQLite handles surprisingly high throughput for single-node deployments:
| Mode | Peak Throughput | Use Case |
|---|---|---|
| Embedded | 286K ops/sec | Same process |
| TCP | 149K ops/sec | Distributed workers |
Run
bun run benchto verify on your hardware. Full benchmark methodology →
# Start with Prometheus + Grafana
docker compose --profile monitoring up -d
MIT
FAQs
High-performance job queue for Bun & AI agents. SQLite persistence, cron scheduling, priorities, retries, DLQ, webhooks, native MCP server. Zero external dependencies.
The npm package bunqueue receives a total of 2,457 weekly downloads. As such, bunqueue popularity was classified as popular.
We found that bunqueue demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.