Skip to content

Snapstream provides a data-flow model to simplify development of stateful streaming applications.

License

Notifications You must be signed in to change notification settings

Menziess/snapstream

Repository files navigation

Test Python Package Documentation Status Downloads

Note: confluent-kafka 2.6.0 issues on Azure

See: confluentinc/confluent-kafka-python#1838

Add confluent-kafka == 2.5.3 to your dependencies list

Snapstream

Snapstream provides a data-flow model to simplify development of stateful streaming applications.

Installation

pip install snapstream

Usage

We snap iterables to user functions, and process them in parallel when we call stream:

demo

We pass the callable print to print out the return value. Multiple iterables and sinks can be passed.

from snapstream import snap, stream

@snap(range(5), sink=[print])
def handler(msg):
    yield f'Hello {msg}'

stream()
Hello 0
Hello 1
Hello 2
Hello 3
Hello 4

To try it out for yourself, spin up a local kafka broker with docker-compose.yml, using localhost:29091 to connect:

docker compose up broker -d

Use the cli tool to inspect Topic/Cache:

snapstream topic emoji --offset -2
>>> timestamp: 2023-04-28T17:31:51.775000+00:00
>>> offset: 0
>>> key:
🏆

Features

About

Snapstream provides a data-flow model to simplify development of stateful streaming applications.

Topics

Resources

License

Stars

Watchers

Forks

Languages