{"id":47406,"library":"disk-queue","title":"disk-queue","description":"A lightweight queue that persists items to the filesystem to save memory. Version 0.1.3. It uses a file as a buffer, writing and reading items sequentially. It provides basic push, shift, reset, and close operations with drain and reset events. It includes TypeScript definitions and supports custom serializers and deserializers. The package is intended for scenarios where memory needs to be conserved but persistence is not critical.","status":"active","version":"0.1.3","language":"javascript","source_language":"en","source_url":"https://github.com/fengkx/disk-queue","tags":["javascript","queue","disk","file","typescript"],"install":[{"cmd":"npm install disk-queue","lang":"bash","label":"npm"},{"cmd":"yarn add disk-queue","lang":"bash","label":"yarn"},{"cmd":"pnpm add disk-queue","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM-only package; CommonJS require will fail. Use dynamic import if needed.","wrong":"const DiskQueue = require('disk-queue')","symbol":"DiskQueue","correct":"import { DiskQueue } from 'disk-queue'"}],"quickstart":{"code":"import { DiskQueue } from 'disk-queue';\nimport { tmpdir } from 'os';\nimport { join } from 'path';\n\nconst filePath = join(tmpdir(), 'test-queue.db');\nconst queue = new DiskQueue({ filePath });\n\nqueue.push({ task: 'example' });\nconsole.log(queue.remainCount); // 1\n\nconst item = queue.shift();\nconsole.log(item); // { task: 'example' }\nconsole.log(queue.remainCount); // 0\n\nqueue.on('drain', () => {\n  console.log('Queue is empty');\n});\n\nqueue.close();","lang":"typescript","description":"Creates a disk-persisted queue, pushes an item, shifts it out, and listens for drain event."},"warnings":[{"fix":"Ensure no push() calls after close() or re-instantiate the queue.","message":"Pushing after close() throws an error about invalid file descriptor.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Check remainCount before calling shift() if undefined is a concern.","message":"shift() returns undefined when queue is empty, similar to Arrays. Not a breaking change but often misunderstood.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Call queue.reset() or delete the file manually after usage.","message":"The queue file is not automatically deleted; manual cleanup required.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"search_vec":"'0.1.3':17 'basic':32 'buffer':24 'close':37 'conserv':65 'critic':70 'custom':50 'definit':47 'deseri':53 'disk':2,73 'disk-queu':1 'drain':40 'event':43 'file':21,74 'filesystem':12 'includ':45 'intend':57 'item':9,28 'javascript':71 'lightweight':5 'memori':15,61 'need':62 'oper':38 'packag':55 'persist':8,67 'provid':31 'push':33 'queue':3,6,72 'read':27 'reset':35,42 'save':14 'scenario':59 'sequenti':29 'serial':51 'shift':34 'support':49 'typescript':46,75 'use':19 'version':16 'write':25","created_at":"2026-06-07T16:51:21.578047+00:00","updated_at":"2026-06-07T16:51:21.578047+00:00","problems":[{"fix":"Use 'import' syntax and ensure 'type': 'module' in package.json or install esm package. For TypeScript, add 'moduleResolution': 'node' or 'bundler'.","cause":"Package is ESM-only but project uses CommonJS or missing tsconfig settings.","error":"Cannot find module 'disk-queue' or its corresponding type declarations."},{"fix":"Ensure queue.close() is called for each instance when no longer needed.","cause":"Multiple queue instances or not calling close() after usage.","error":"Error: EMFILE: too many open files"}],"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://github.com/fengkx/disk-queue#readme","github":"https://github.com/fengkx/disk-queue","docs":null,"changelog":null,"pypi":null,"npm":"disk-queue","openapi_spec":null,"status_page":null,"smithery":null,"categories":["storage"],"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}}