hobrus-rabbitmq


Namehobrus-rabbitmq JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/Hobrus/SimpleRabbitMQFastStreamByHobrus
SummarySimple RabbitMQ wrapper using FastStream for easy message publishing and subscribing in Python
upload_time2024-10-29 18:17:03
maintainerNone
docs_urlNone
authorSuhobrus Boris
requires_python>=3.7
licenseNone
keywords rabbitmq faststream messaging queue
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Hobrus RabbitMQ

Simple RabbitMQ wrapper using FastStream for easy message publishing and subscribing in Python.

## Installation

```bash
pip install hobrus-rabbitmq
```

## Environment Variables

The package uses the following environment variables (with default values):

```env
RABBITMQ_USERNAME=guest
RABBITMQ_PASSWORD=guest
RABBITMQ_HOST=localhost
RABBITMQ_PORT=5672
RABBITMQ_PROTOCOL=amqp
```

You can set these variables in your environment or use a `.env` file.

## Usage

### Synchronous Message Publishing

```python
from hobrus_rabbitmq import send_message_sync

# Send a message synchronously
send_message_sync("queue_name", "Hello, World!")
```

### Asynchronous Message Publishing

```python
import asyncio
from hobrus_rabbitmq import send_message

async def publish_message():
    await send_message("queue_name", "Hello, World!")

# Run the async function
asyncio.run(publish_message())
```

### Message Subscribing

```python
from hobrus_rabbitmq import subscriber, run

# Define a message handler
@subscriber("queue_name")
async def process_message(message: str):
    print(f"Received message: {message}")

# Start the subscriber
if __name__ == "__main__":
    run()
```

## Complete Examples

### Async Publisher Example

```python
import asyncio
from hobrus_rabbitmq import send_message

async def test_async():
    for i in range(5):
        message = f"Async message {i}"
        print(f"Sending: {message}")
        await send_message("test_queue", message)
        await asyncio.sleep(1)  # Small delay between messages

if __name__ == "__main__":
    asyncio.run(test_async())
```

### Sync Publisher Example

```python
from hobrus_rabbitmq import send_message_sync
import time

def test_sync():
    for i in range(5):
        message = f"Sync message {i}"
        print(f"Sending: {message}")
        send_message_sync("test_queue", message)
        time.sleep(1)  # Small delay between messages

if __name__ == "__main__":
    test_sync()
```

### Subscriber Example

```python
from hobrus_rabbitmq import subscriber, run

@subscriber("test_queue")
async def process_message(message: str):
    print(f"Received message: {message}")

if __name__ == "__main__":
    print("Starting subscriber...")
    run()
```

## Dependencies

- faststream[rabbit]

## License

This project is open-source.

## Author

- Suhobrus Boris
- Email: bhobrus@gmail.com
- GitHub: [SimpleRabbitMQFastStreamByHobrus](https://github.com/Hobrus/SimpleRabbitMQFastStreamByHobrus)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Hobrus/SimpleRabbitMQFastStreamByHobrus",
    "name": "hobrus-rabbitmq",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "rabbitmq, faststream, messaging, queue",
    "author": "Suhobrus Boris",
    "author_email": "bhobrus@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/96/eb/5dcef3b021e17af5c8c7363a269f6ed8c001a7bd5250955541ca22d11fb0/hobrus_rabbitmq-0.1.0.tar.gz",
    "platform": null,
    "description": "# Hobrus RabbitMQ\r\n\r\nSimple RabbitMQ wrapper using FastStream for easy message publishing and subscribing in Python.\r\n\r\n## Installation\r\n\r\n```bash\r\npip install hobrus-rabbitmq\r\n```\r\n\r\n## Environment Variables\r\n\r\nThe package uses the following environment variables (with default values):\r\n\r\n```env\r\nRABBITMQ_USERNAME=guest\r\nRABBITMQ_PASSWORD=guest\r\nRABBITMQ_HOST=localhost\r\nRABBITMQ_PORT=5672\r\nRABBITMQ_PROTOCOL=amqp\r\n```\r\n\r\nYou can set these variables in your environment or use a `.env` file.\r\n\r\n## Usage\r\n\r\n### Synchronous Message Publishing\r\n\r\n```python\r\nfrom hobrus_rabbitmq import send_message_sync\r\n\r\n# Send a message synchronously\r\nsend_message_sync(\"queue_name\", \"Hello, World!\")\r\n```\r\n\r\n### Asynchronous Message Publishing\r\n\r\n```python\r\nimport asyncio\r\nfrom hobrus_rabbitmq import send_message\r\n\r\nasync def publish_message():\r\n    await send_message(\"queue_name\", \"Hello, World!\")\r\n\r\n# Run the async function\r\nasyncio.run(publish_message())\r\n```\r\n\r\n### Message Subscribing\r\n\r\n```python\r\nfrom hobrus_rabbitmq import subscriber, run\r\n\r\n# Define a message handler\r\n@subscriber(\"queue_name\")\r\nasync def process_message(message: str):\r\n    print(f\"Received message: {message}\")\r\n\r\n# Start the subscriber\r\nif __name__ == \"__main__\":\r\n    run()\r\n```\r\n\r\n## Complete Examples\r\n\r\n### Async Publisher Example\r\n\r\n```python\r\nimport asyncio\r\nfrom hobrus_rabbitmq import send_message\r\n\r\nasync def test_async():\r\n    for i in range(5):\r\n        message = f\"Async message {i}\"\r\n        print(f\"Sending: {message}\")\r\n        await send_message(\"test_queue\", message)\r\n        await asyncio.sleep(1)  # Small delay between messages\r\n\r\nif __name__ == \"__main__\":\r\n    asyncio.run(test_async())\r\n```\r\n\r\n### Sync Publisher Example\r\n\r\n```python\r\nfrom hobrus_rabbitmq import send_message_sync\r\nimport time\r\n\r\ndef test_sync():\r\n    for i in range(5):\r\n        message = f\"Sync message {i}\"\r\n        print(f\"Sending: {message}\")\r\n        send_message_sync(\"test_queue\", message)\r\n        time.sleep(1)  # Small delay between messages\r\n\r\nif __name__ == \"__main__\":\r\n    test_sync()\r\n```\r\n\r\n### Subscriber Example\r\n\r\n```python\r\nfrom hobrus_rabbitmq import subscriber, run\r\n\r\n@subscriber(\"test_queue\")\r\nasync def process_message(message: str):\r\n    print(f\"Received message: {message}\")\r\n\r\nif __name__ == \"__main__\":\r\n    print(\"Starting subscriber...\")\r\n    run()\r\n```\r\n\r\n## Dependencies\r\n\r\n- faststream[rabbit]\r\n\r\n## License\r\n\r\nThis project is open-source.\r\n\r\n## Author\r\n\r\n- Suhobrus Boris\r\n- Email: bhobrus@gmail.com\r\n- GitHub: [SimpleRabbitMQFastStreamByHobrus](https://github.com/Hobrus/SimpleRabbitMQFastStreamByHobrus)\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Simple RabbitMQ wrapper using FastStream for easy message publishing and subscribing in Python",
    "version": "0.1.0",
    "project_urls": {
        "Bug Reports": "https://github.com/Hobrus/SimpleRabbitMQFastStreamByHobrus/issues",
        "Homepage": "https://github.com/Hobrus/SimpleRabbitMQFastStreamByHobrus",
        "Source": "https://github.com/Hobrus/SimpleRabbitMQFastStreamByHobrus"
    },
    "split_keywords": [
        "rabbitmq",
        " faststream",
        " messaging",
        " queue"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3494bccbf42bf69544dc894ffe889041d8d14a8e606c5718c4df2645c2265407",
                "md5": "a769ac1dfc6c07d9a513274cbd001917",
                "sha256": "102a97d972a1a8ecae93f5c0ddf49a9d50b0ffd2110bcf47e31cdc6f5393b62b"
            },
            "downloads": -1,
            "filename": "hobrus_rabbitmq-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a769ac1dfc6c07d9a513274cbd001917",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 3521,
            "upload_time": "2024-10-29T18:17:01",
            "upload_time_iso_8601": "2024-10-29T18:17:01.002382Z",
            "url": "https://files.pythonhosted.org/packages/34/94/bccbf42bf69544dc894ffe889041d8d14a8e606c5718c4df2645c2265407/hobrus_rabbitmq-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "96eb5dcef3b021e17af5c8c7363a269f6ed8c001a7bd5250955541ca22d11fb0",
                "md5": "f0a8699fd7ecb9cf96a9dcd9bc23bbe0",
                "sha256": "159c20a5ef4f3e8db1a03b7b48d72b77abf03004f755c889b572c2a7e0e63a6f"
            },
            "downloads": -1,
            "filename": "hobrus_rabbitmq-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f0a8699fd7ecb9cf96a9dcd9bc23bbe0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 3181,
            "upload_time": "2024-10-29T18:17:03",
            "upload_time_iso_8601": "2024-10-29T18:17:03.874316Z",
            "url": "https://files.pythonhosted.org/packages/96/eb/5dcef3b021e17af5c8c7363a269f6ed8c001a7bd5250955541ca22d11fb0/hobrus_rabbitmq-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-29 18:17:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Hobrus",
    "github_project": "SimpleRabbitMQFastStreamByHobrus",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "hobrus-rabbitmq"
}
        
Elapsed time: 0.49065s