bytewax-valkey


Namebytewax-valkey JSON
Version 0.3.0 PyPI version JSON
download
home_pageNone
SummaryValkey connectors for Bytewax
upload_time2025-01-12 00:46:59
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords bytewax valkey
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![PyPI](https://img.shields.io/pypi/v/bytewax-valkey.svg?style=flat-square)][pypi-package]

# Bytewax Valkey

[Valkey][valkey] connectors for [Bytewax][bytewax].

This connector offers 3 sources and 2 sinks:

* `StreamSink` - writes [Valkey streams][valkey-streams] using `xadd`
* `StreamSource` - reads [Valkey streams][valkey-streams] using `xread`
* `PubSubSink` - writes [Valkey pubsub][valkey-pubsub] using `publish`
* `PubSubSource` - reads [Valkey pubsub][valkey-pubsub] using `subscribe`
* `PubSubPatternSource` - reads [Valkey pubsub][valkey-pubsub] using `psubscribe`

## Installation

This package is available via [PyPi][pypi-package] as
`bytewax-valkey` and can be installed via your package manager of choice.

## Usage

### Pub/Sub Source

```python
import os

from bytewax_valkey import PubSubSource
from bytewax.connectors.stdio import StdOutSink

import bytewax.operators as op
from bytewax.dataflow import Dataflow

VALKEY_URL = os.environ["VALKEY_URL"]

flow = Dataflow("valkey_example")
flow_input = op.input("input", flow, PubSubSource.from_url(VALKEY_URL, "example"))
op.output("output", flow_input, StdOutSink())
```

### Pub/Sub Pattern Source

```python
import os

from bytewax_valkey import PubSubPatternSource
from bytewax.connectors.stdio import StdOutSink

import bytewax.operators as op
from bytewax.dataflow import Dataflow

VALKEY_URL = os.environ["VALKEY_URL"]

flow = Dataflow("valkey_example")
flow_input = op.input("input", flow, PubSubPatternSource.from_url(VALKEY_URL, "example*"))
op.output("output", flow_input, StdOutSink())
```

### Pub/Sub Sink

```python
import os

from bytewax_valkey import PubSubSink
from bytewax.testing import TestingSource

import bytewax.operators as op
from bytewax.dataflow import Dataflow

VALKEY_URL = os.environ["VALKEY_URL"]

flow = Dataflow("valkey_example")
flow_input = op.input("input", flow, TestingSource([b"example message"]))
op.output("output", flow_input, PubSubSink.from_url(VALKEY_URL, "example"))
```

### Stream Source

```python
import os

from bytewax_valkey import StreamSource
from bytewax.connectors.stdio import StdOutSink

import bytewax.operators as op
from bytewax.dataflow import Dataflow

VALKEY_URL = os.environ["VALKEY_URL"]

flow = Dataflow("valkey_example")
flow_input = op.input("input", flow, StreamSource.from_url(VALKEY_URL, "example"))
op.output("output", flow_input, StdOutSink())
```

### Stream Sink

```python
import os

from bytewax_valkey import StreamSink
from bytewax.testing import TestingSource

import bytewax.operators as op
from bytewax.dataflow import Dataflow

VALKEY_URL = os.environ["VALKEY_URL"]

flow = Dataflow("valkey_example")
flow_input = op.input("input", flow, TestingSource([{"key": "value"}]))
op.output("output", flow_input, StreamSink.from_url(VALKEY_URL, "example"))
```

## License

Licensed under the [MIT License](./LICENSE).

[valkey]: https://valkey.io
[bytewax]: https://bytewax.io
[valkey-streams]: https://valkey.io/topics/streams-intro/
[valkey-pubsub]: https://valkey.io/topics/pubsub/
[pypi-package]: https://pypi.org/project/bytewax-valkey
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "bytewax-valkey",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "bytewax, valkey",
    "author": null,
    "author_email": "James Ward <james@notjam.es>",
    "download_url": "https://files.pythonhosted.org/packages/ab/08/1610347d4071e36be58d84db0244de68827c688fb607689fff22a48bc9fb/bytewax_valkey-0.3.0.tar.gz",
    "platform": null,
    "description": "[![PyPI](https://img.shields.io/pypi/v/bytewax-valkey.svg?style=flat-square)][pypi-package]\n\n# Bytewax Valkey\n\n[Valkey][valkey] connectors for [Bytewax][bytewax].\n\nThis connector offers 3 sources and 2 sinks:\n\n* `StreamSink` - writes [Valkey streams][valkey-streams] using `xadd`\n* `StreamSource` - reads [Valkey streams][valkey-streams] using `xread`\n* `PubSubSink` - writes [Valkey pubsub][valkey-pubsub] using `publish`\n* `PubSubSource` - reads [Valkey pubsub][valkey-pubsub] using `subscribe`\n* `PubSubPatternSource` - reads [Valkey pubsub][valkey-pubsub] using `psubscribe`\n\n## Installation\n\nThis package is available via [PyPi][pypi-package] as\n`bytewax-valkey` and can be installed via your package manager of choice.\n\n## Usage\n\n### Pub/Sub Source\n\n```python\nimport os\n\nfrom bytewax_valkey import PubSubSource\nfrom bytewax.connectors.stdio import StdOutSink\n\nimport bytewax.operators as op\nfrom bytewax.dataflow import Dataflow\n\nVALKEY_URL = os.environ[\"VALKEY_URL\"]\n\nflow = Dataflow(\"valkey_example\")\nflow_input = op.input(\"input\", flow, PubSubSource.from_url(VALKEY_URL, \"example\"))\nop.output(\"output\", flow_input, StdOutSink())\n```\n\n### Pub/Sub Pattern Source\n\n```python\nimport os\n\nfrom bytewax_valkey import PubSubPatternSource\nfrom bytewax.connectors.stdio import StdOutSink\n\nimport bytewax.operators as op\nfrom bytewax.dataflow import Dataflow\n\nVALKEY_URL = os.environ[\"VALKEY_URL\"]\n\nflow = Dataflow(\"valkey_example\")\nflow_input = op.input(\"input\", flow, PubSubPatternSource.from_url(VALKEY_URL, \"example*\"))\nop.output(\"output\", flow_input, StdOutSink())\n```\n\n### Pub/Sub Sink\n\n```python\nimport os\n\nfrom bytewax_valkey import PubSubSink\nfrom bytewax.testing import TestingSource\n\nimport bytewax.operators as op\nfrom bytewax.dataflow import Dataflow\n\nVALKEY_URL = os.environ[\"VALKEY_URL\"]\n\nflow = Dataflow(\"valkey_example\")\nflow_input = op.input(\"input\", flow, TestingSource([b\"example message\"]))\nop.output(\"output\", flow_input, PubSubSink.from_url(VALKEY_URL, \"example\"))\n```\n\n### Stream Source\n\n```python\nimport os\n\nfrom bytewax_valkey import StreamSource\nfrom bytewax.connectors.stdio import StdOutSink\n\nimport bytewax.operators as op\nfrom bytewax.dataflow import Dataflow\n\nVALKEY_URL = os.environ[\"VALKEY_URL\"]\n\nflow = Dataflow(\"valkey_example\")\nflow_input = op.input(\"input\", flow, StreamSource.from_url(VALKEY_URL, \"example\"))\nop.output(\"output\", flow_input, StdOutSink())\n```\n\n### Stream Sink\n\n```python\nimport os\n\nfrom bytewax_valkey import StreamSink\nfrom bytewax.testing import TestingSource\n\nimport bytewax.operators as op\nfrom bytewax.dataflow import Dataflow\n\nVALKEY_URL = os.environ[\"VALKEY_URL\"]\n\nflow = Dataflow(\"valkey_example\")\nflow_input = op.input(\"input\", flow, TestingSource([{\"key\": \"value\"}]))\nop.output(\"output\", flow_input, StreamSink.from_url(VALKEY_URL, \"example\"))\n```\n\n## License\n\nLicensed under the [MIT License](./LICENSE).\n\n[valkey]: https://valkey.io\n[bytewax]: https://bytewax.io\n[valkey-streams]: https://valkey.io/topics/streams-intro/\n[valkey-pubsub]: https://valkey.io/topics/pubsub/\n[pypi-package]: https://pypi.org/project/bytewax-valkey",
    "bugtrack_url": null,
    "license": null,
    "summary": "Valkey connectors for Bytewax",
    "version": "0.3.0",
    "project_urls": {
        "Issues": "https://github.com/imnotjames/bytewax-valkey/issues",
        "Repository": "https://github.com/imnotjames/bytewax-valkey.git"
    },
    "split_keywords": [
        "bytewax",
        " valkey"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e6af31056ef83736c03c2147eee2aa07ba35f604f70f97b3a71b3cbb579edc2b",
                "md5": "617c3dae0456db4418d71aae3f34cfa7",
                "sha256": "352f30fb3da844ad05ba0d53a5c5b6ce1bddfa7d8f64a63c2346feb1b1e14dd2"
            },
            "downloads": -1,
            "filename": "bytewax_valkey-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "617c3dae0456db4418d71aae3f34cfa7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 7446,
            "upload_time": "2025-01-12T00:46:57",
            "upload_time_iso_8601": "2025-01-12T00:46:57.521360Z",
            "url": "https://files.pythonhosted.org/packages/e6/af/31056ef83736c03c2147eee2aa07ba35f604f70f97b3a71b3cbb579edc2b/bytewax_valkey-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ab081610347d4071e36be58d84db0244de68827c688fb607689fff22a48bc9fb",
                "md5": "786282aedd0c55c82f24bbd45fd4ee2a",
                "sha256": "5c6f47b126e2c09590e6ad4e4cd8d3150e8422c785322009f45cc0c39859c821"
            },
            "downloads": -1,
            "filename": "bytewax_valkey-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "786282aedd0c55c82f24bbd45fd4ee2a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 13005,
            "upload_time": "2025-01-12T00:46:59",
            "upload_time_iso_8601": "2025-01-12T00:46:59.676799Z",
            "url": "https://files.pythonhosted.org/packages/ab/08/1610347d4071e36be58d84db0244de68827c688fb607689fff22a48bc9fb/bytewax_valkey-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-12 00:46:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "imnotjames",
    "github_project": "bytewax-valkey",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "bytewax-valkey"
}
        
Elapsed time: 0.68847s