{"id":44452,"library":"bunqueue","title":"Bunqueue","description":"Bunqueue is a high-performance job queue for the Bun runtime (≥1.3.9), built specifically for AI agents and automation. Version 2.8.6 provides SQLite persistence, cron scheduling, priorities, retries, dead-letter queues, webhooks, and a native MCP server — all with zero external runtime dependencies (only croner and msgpackr). It is a Redis/BullMQ alternative that ships as ESM-only TypeScript types. The package is actively maintained with frequent releases and benchmarks showing sub-millisecond job processing. Key differentiators: embedded/Simple Mode (queue+worker in one object), optional MCP SDK peer dependency, and a tiny footprint (7 packages, 5.4 MB) unlike Redis-backed alternatives.","status":"active","version":"2.8.6","language":"javascript","source_language":"en","source_url":"https://github.com/egeominotti/bunqueue","tags":["javascript","bun","job-queue","message-queue","task-queue","background-jobs","queue","worker","cron","typescript"],"install":[{"cmd":"npm install bunqueue","lang":"bash","label":"npm"},{"cmd":"yarn add bunqueue","lang":"bash","label":"yarn"},{"cmd":"pnpm add bunqueue","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Optional peer dependency required for MCP server functionality","package":"@modelcontextprotocol/sdk","optional":true}],"imports":[{"note":"The package is ESM-only; require() will fail. Use the /client path for the Simple Mode combined queue+worker.","wrong":"const Bunqueue = require('bunqueue/client')","symbol":"Bunqueue","correct":"import { Bunqueue } from 'bunqueue/client'"},{"note":"The base Queue class is exported from the main package. Queue is distinct from Bunqueue; it's used for distributed systems.","wrong":"import { Queue } from 'bunqueue/client'","symbol":"Queue","correct":"import { Queue } from 'bunqueue'"},{"note":"Worker is a named export from 'bunqueue', not a default export. For distributed setups, use Queue + Worker separately.","wrong":"import Worker from 'bunqueue'","symbol":"Worker","correct":"import { Worker } from 'bunqueue'"},{"note":"Job is a TypeScript type, not a runtime value. Use 'import type' for correct type-only import.","wrong":"import { Job } from 'bunqueue'","symbol":"type Job","correct":"import type { Job } from 'bunqueue'"}],"quickstart":{"code":"import { Bunqueue } from 'bunqueue/client';\n\nconst app = new Bunqueue('emails', {\n  embedded: true,\n  processor: async (job) => {\n    console.log(`Sending email to ${job.data.to}`);\n    return { sent: true, id: job.id };\n  },\n});\n\nawait app.add('send', { to: 'alice@example.com' });\nconsole.log('Job added and processed by embedded worker');","lang":"typescript","description":"Shows how to create a Simple Mode Bunqueue with an embedded worker that processes a job immediately."},"warnings":[{"fix":"Install Bun from https://bun.sh and run scripts with 'bun' command.","message":"Requires Bun >=1.3.9 — does not run on Node.js, Deno, or older Bun versions.","severity":"breaking","affected_versions":">=0.0.0"},{"fix":"Use dynamic import() or configure TypeScript/Node to support ESM.","message":"All imports must use ESM syntax; 'require()' throws an error because the package ships only ESM with extensionless specifiers.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Ensure 'new Queue(...)' is called and the queue is ready before calling 'queue.add(...)'.","message":"When using separate Queue and Worker in distributed mode, the Queue must be instantiated before adding jobs to avoid race conditions.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Migrate to `Bunqueue` from 'bunqueue/client' for a simpler API.","message":"The `Bunqueue` Simple Mode class is the recommended approach; using `Queue` + `Worker` separately is for advanced distributed setups only.","severity":"deprecated","affected_versions":">=2.8.0"}],"env_vars":null,"search_vec":"'1.3.9':14 '2.8.6':23 '5.4':100 '7':98 'activ':67 'agent':19 'ai':18 'altern':55,106 'autom':21 'back':105 'background':119 'background-job':118 'benchmark':73 'built':15 'bun':12,108 'bunqueu':1,2 'cron':27,123 'croner':48 'dead':32 'dead-lett':31 'depend':46,93 'differenti':81 'embedded/simple':82 'esm':60 'esm-on':59 'extern':44 'footprint':97 'frequent':70 'high':6 'high-perform':5 'javascript':107 'job':8,78,110,120 'job-queu':109 'key':80 'letter':33 'maintain':68 'mb':101 'mcp':39,90 'messag':113 'message-queu':112 'millisecond':77 'mode':83 'msgpackr':50 'nativ':38 'object':88 'one':87 'option':89 'packag':65,99 'peer':92 'perform':7 'persist':26 'prioriti':29 'process':79 'provid':24 'queue':9,34,84,111,114,117,121 'redi':104 'redis-back':103 'redis/bullmq':54 'releas':71 'retri':30 'runtim':13,45 'schedul':28 'sdk':91 'server':40 'ship':57 'show':74 'specif':16 'sqlite':25 'sub':76 'sub-millisecond':75 'task':116 'task-queu':115 'tini':96 'type':63 'typescript':62,124 'unlik':102 'version':22 'webhook':35 'worker':85,122 'zero':43","created_at":"2026-06-07T12:50:12.406172+00:00","updated_at":"2026-06-07T12:50:12.406172+00:00","problems":[{"fix":"Run 'bun add bunqueue' and ensure your code uses 'import { Bunqueue } from \"bunqueue/client\";'","cause":"Using CommonJS (require) instead of ESM import, or forgetting to install the package.","error":"Error: Cannot find module 'bunqueue/client'"},{"fix":"Use 'import { Bunqueue } from \"bunqueue/client\";' (curly braces for named import)","cause":"Default import used instead of named import, or the import path is wrong.","error":"TypeError: Bunqueue is not a constructor"},{"fix":"Install Bun 1.3.9+ from https://bun.sh and run with 'bun' command.","cause":"Running the code with Node.js or an older version of Bun.","error":"Error: Bunqueue requires Bun runtime >= 1.3.9"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://bunqueue.dev","github":"https://github.com/egeominotti/bunqueue","docs":null,"changelog":null,"pypi":null,"npm":"bunqueue","openapi_spec":null,"status_page":null,"smithery":null,"categories":["messaging","devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}