tiny-queue


Nametiny-queue JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA modular, extensible Python queue service
upload_time2025-08-28 18:26:52
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseMIT
keywords queue priority queue async persistent python library
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Tiny Queue

A modular, extensible Python queue service with support for FIFO, priority, async, and persistent queues. Designed for production use in enterprise applications with monitoring, decorators, and retry logic.

---

## ๐Ÿš€ Features

- โœ… FIFO, Priority, Async, and Persistent Queues
- ๐Ÿ”’ Thread-safe and async-compatible
- ๐Ÿ’พ File-based persistence
- ๐Ÿ“Š Monitoring hooks (logging, metrics)
- ๐Ÿ” Retry and rate-limiting utilities
- ๐Ÿงฉ Decorators for queuing function calls
- ๐Ÿงช Easy to test and extend

---

## ๐Ÿ“ฆ Installation

```bash
pip install tiny-queue
```
Or clone the repo for local development:

```bash
git clone https://github.com/js-sravan/tiny-queue.git
cd queue-service
pip install -e .
```

## Usage

### FIFO Queue

```python
from queue_service import FIFOQueue

q = FIFOQueue()
q.enqueue("task1")
print(q.dequeue())  # โ†’ "task1"
```

### Priority Queue
```python
from queue_service import PriorityQueue

pq = PriorityQueue()
pq.enqueue("urgent", priority=1)
pq.enqueue("low", priority=5)
print(pq.dequeue())  # โ†’ "urgent"
```

### Async Queue
```python
import asyncio
from queue_service import AsyncQueue

async def main():
    aq = AsyncQueue()
    await aq.enqueue("async-task")
    task = await aq.dequeue()
    print(task)

asyncio.run(main())
```

### Persistent Queue
```python
from queue_service import PersistentQueue

pq = PersistentQueue(filepath="my_queue.json")
pq.enqueue("saved-task")
print(pq.dequeue())
```

## Additional Utilities

### Retry Decorator
```python
from queue_service import retry

@retry(times=3, delay=2)
def fragile_task():
    # May fail intermittently
    pass
```

### Rate Limiting
```python
from queue_service import rate_limit

@rate_limit(calls_per_second=5)
def api_call():
    pass
```

### Queueing Functions
```python
from queue_service import FIFOQueue, queue_task

q = FIFOQueue()

@queue_task(q)
def process_data(x):
    return x * 2

process_data(10)  # Enqueued as a task
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "tiny-queue",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "queue, priority queue, async, persistent, python library",
    "author": null,
    "author_email": "Sravan JS <mr.sravanjs@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/9a/92/12370c8374b32bce8bb1ba69bf86075e865f0aac973fd2fd8325be64e97d/tiny_queue-0.1.0.tar.gz",
    "platform": null,
    "description": "# Tiny Queue\r\n\r\nA modular, extensible Python queue service with support for FIFO, priority, async, and persistent queues. Designed for production use in enterprise applications with monitoring, decorators, and retry logic.\r\n\r\n---\r\n\r\n## \ud83d\ude80 Features\r\n\r\n- \u2705 FIFO, Priority, Async, and Persistent Queues\r\n- \ud83d\udd12 Thread-safe and async-compatible\r\n- \ud83d\udcbe File-based persistence\r\n- \ud83d\udcca Monitoring hooks (logging, metrics)\r\n- \ud83d\udd01 Retry and rate-limiting utilities\r\n- \ud83e\udde9 Decorators for queuing function calls\r\n- \ud83e\uddea Easy to test and extend\r\n\r\n---\r\n\r\n## \ud83d\udce6 Installation\r\n\r\n```bash\r\npip install tiny-queue\r\n```\r\nOr clone the repo for local development:\r\n\r\n```bash\r\ngit clone https://github.com/js-sravan/tiny-queue.git\r\ncd queue-service\r\npip install -e .\r\n```\r\n\r\n## Usage\r\n\r\n### FIFO Queue\r\n\r\n```python\r\nfrom queue_service import FIFOQueue\r\n\r\nq = FIFOQueue()\r\nq.enqueue(\"task1\")\r\nprint(q.dequeue())  # \u2192 \"task1\"\r\n```\r\n\r\n### Priority Queue\r\n```python\r\nfrom queue_service import PriorityQueue\r\n\r\npq = PriorityQueue()\r\npq.enqueue(\"urgent\", priority=1)\r\npq.enqueue(\"low\", priority=5)\r\nprint(pq.dequeue())  # \u2192 \"urgent\"\r\n```\r\n\r\n### Async Queue\r\n```python\r\nimport asyncio\r\nfrom queue_service import AsyncQueue\r\n\r\nasync def main():\r\n    aq = AsyncQueue()\r\n    await aq.enqueue(\"async-task\")\r\n    task = await aq.dequeue()\r\n    print(task)\r\n\r\nasyncio.run(main())\r\n```\r\n\r\n### Persistent Queue\r\n```python\r\nfrom queue_service import PersistentQueue\r\n\r\npq = PersistentQueue(filepath=\"my_queue.json\")\r\npq.enqueue(\"saved-task\")\r\nprint(pq.dequeue())\r\n```\r\n\r\n## Additional Utilities\r\n\r\n### Retry Decorator\r\n```python\r\nfrom queue_service import retry\r\n\r\n@retry(times=3, delay=2)\r\ndef fragile_task():\r\n    # May fail intermittently\r\n    pass\r\n```\r\n\r\n### Rate Limiting\r\n```python\r\nfrom queue_service import rate_limit\r\n\r\n@rate_limit(calls_per_second=5)\r\ndef api_call():\r\n    pass\r\n```\r\n\r\n### Queueing Functions\r\n```python\r\nfrom queue_service import FIFOQueue, queue_task\r\n\r\nq = FIFOQueue()\r\n\r\n@queue_task(q)\r\ndef process_data(x):\r\n    return x * 2\r\n\r\nprocess_data(10)  # Enqueued as a task\r\n```\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A modular, extensible Python queue service",
    "version": "0.1.0",
    "project_urls": null,
    "split_keywords": [
        "queue",
        " priority queue",
        " async",
        " persistent",
        " python library"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cfbb0752ef7464a82613285eb5dc2d39263f7f10672b1b6d45971f8d0bef73bf",
                "md5": "563c412c9272742e03b4029d642301f8",
                "sha256": "ef2f5d55ac66edcb8d45bb4f4a281cef3d04953f1dcba39556e5f9a1450e1454"
            },
            "downloads": -1,
            "filename": "tiny_queue-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "563c412c9272742e03b4029d642301f8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 6414,
            "upload_time": "2025-08-28T18:26:50",
            "upload_time_iso_8601": "2025-08-28T18:26:50.623393Z",
            "url": "https://files.pythonhosted.org/packages/cf/bb/0752ef7464a82613285eb5dc2d39263f7f10672b1b6d45971f8d0bef73bf/tiny_queue-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9a9212370c8374b32bce8bb1ba69bf86075e865f0aac973fd2fd8325be64e97d",
                "md5": "7c65664d30dcd314e4e6e77689eb95f3",
                "sha256": "e5c71d21aa6c91194ca4ce25f581c61bd3c1b466ce03f8d33111df04249f68a5"
            },
            "downloads": -1,
            "filename": "tiny_queue-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7c65664d30dcd314e4e6e77689eb95f3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 5601,
            "upload_time": "2025-08-28T18:26:52",
            "upload_time_iso_8601": "2025-08-28T18:26:52.366183Z",
            "url": "https://files.pythonhosted.org/packages/9a/92/12370c8374b32bce8bb1ba69bf86075e865f0aac973fd2fd8325be64e97d/tiny_queue-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-28 18:26:52",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "tiny-queue"
}
        
Elapsed time: 1.45767s