{"id":49182312,"url":"https://github.com/brunoportis/localqueue","last_synced_at":"2026-04-23T02:01:47.653Z","repository":{"id":353099290,"uuid":"1214537242","full_name":"brunoportis/localqueue","owner":"brunoportis","description":"Durable local queues for Python workers, scripts, and CLI tools.","archived":false,"fork":false,"pushed_at":"2026-04-22T13:05:21.000Z","size":152,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-22T14:13:26.962Z","etag":null,"topics":["cli","python","queue","retry","sqlite","workers"],"latest_commit_sha":null,"homepage":"https://brunoportis.github.io/localqueue/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brunoportis.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-18T17:58:28.000Z","updated_at":"2026-04-22T13:05:44.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/brunoportis/localqueue","commit_stats":null,"previous_names":["brunoportis/localqueue"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/brunoportis/localqueue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunoportis%2Flocalqueue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunoportis%2Flocalqueue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunoportis%2Flocalqueue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunoportis%2Flocalqueue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brunoportis","download_url":"https://codeload.github.com/brunoportis/localqueue/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunoportis%2Flocalqueue/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32162611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T17:06:48.269Z","status":"online","status_checked_at":"2026-04-23T02:00:06.710Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","python","queue","retry","sqlite","workers"],"created_at":"2026-04-23T02:01:45.701Z","updated_at":"2026-04-23T02:01:47.641Z","avatar_url":"https://github.com/brunoportis.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `localqueue`\n\n[![Tests](https://github.com/brunoportis/localqueue/actions/workflows/tests.yml/badge.svg)](https://github.com/brunoportis/localqueue/actions/workflows/tests.yml)\n[![CodeQL](https://github.com/brunoportis/localqueue/actions/workflows/github-code-scanning/codeql/badge.svg)](https://github.com/brunoportis/localqueue/actions/workflows/github-code-scanning/codeql)\n![Coverage](https://img.shields.io/badge/coverage-%E2%89%A595%25-brightgreen)\n\n`localqueue` is a small durable queue for one machine. It stores work on the local filesystem by default and keeps retry state with Tenacity.\n\nUse it for scripts, CLI tools, cron jobs, and small Python workers that share one local store. Use `localqueue.retry` when another system already delivers work and you only need retry state that survives restarts.\n\n```bash\nlocalqueue queue exec emails -- python scripts/send_email.py\n```\n\n```python\nfrom localqueue import PersistentQueue, persistent_worker\n\nqueue = PersistentQueue(\"emails\")\nqueue.put({\"to\": \"user@example.com\"})\n\n@persistent_worker(queue)\ndef send_email(job: dict[str, str]) -\u003e None:\n    deliver(job[\"to\"])\n```\n\nFull docs live at [brunoportis.github.io/localqueue](https://brunoportis.github.io/localqueue/). The source docs are in [`docs/`](docs/).\n\n## Install\n\n```bash\npip install localqueue\n```\n\nFor the CLI:\n\n```bash\npip install \"localqueue[cli]\"\n```\n\nFor the optional LMDB backend:\n\n```bash\npip install \"localqueue[lmdb]\"\n```\n\n## When not to use\n\n`localqueue` is not a distributed broker. If you need multi-host coordination, high write concurrency, managed retention, or strict cross-service ordering, use a system designed for that operating model.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunoportis%2Flocalqueue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrunoportis%2Flocalqueue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunoportis%2Flocalqueue/lists"}