Pre-release
This release is a pre-release and may not be stable for production use.
Slipstream
Slipstream provides a data-flow model to simplify development of stateful streaming applications.
pip install slipstream-async
from asyncio import run
from slipstream import handle, stream
async def messages():
for emoji in '🏆📞🐟👌':
yield emoji
@handle(messages(), sink=[print])
def handle_message(msg):
yield f'Hello {msg}!'
if __name__ == '__main__':
run(stream())
Hello 🏆!
Hello 📞!
Hello 🐟!
Hello 👌!
Usage
Slipstream components interoperate with basic python building blocks:
Any-thing can be passed around as data- Any
Callablemay be used as a sink AsyncIterablesact as sources- Parallelize through
handle
A many-to-many relation is established by passing multiple sources / sinks.
Quickstart
Install Slipstream along with aiokafka (latest):
pip install slipstream-async[kafka]
Spin up a local Kafka broker with docker-compose.yml, using localhost:29091 to connect:
docker compose up broker -d
Copy-paste this snippet.
Features
slipstream.handle: bind streams (iterables) and sinks (callables) to user defined handler functionsslipstream.stream: start streamingslipstream.Topic: consume from (iterable), and produce to (callable) kafka using aiokafkaslipstream.Cache: store data to disk using rocksdictslipstream.Conf: set global kafka configuration (can be overridden per topic). Produce is fail-fast by default; setproduce_retries/produce_retry_backoffto retry retriable broker errors (sources pause viaConf.signal_iterableswhile retrying)slipstream.codecs.JsonCodec: serialize and deserialize json messagesslipstream.Checkpoint: recover from stream downtimes
Metadata
Release files for slipstream-async 1.0.6b8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| slipstream_async-1.0.6b8.tar.gz | 42.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| slipstream_async-1.0.6b8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 71.4 kB
Release files / slipstream_async-1.0.6b8.tar.gz
| Download URL | slipstream_async-1.0.6b8.tar.gz |
|---|---|
| Size | 42.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
91418cbe0fa22f6d5766df71efb89c8976926d982d02f727dbecda92a962b829
|
|
BLAKE2b-256 checksum How to use checksums |
fde3469e11c8c0a8113c3aa76a326b5151d162b59ffc9ca45b1eeaa7fc6ef0c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|
Release files / slipstream_async-1.0.6b8-py3-none-any.whl
| Download URL | slipstream_async-1.0.6b8-py3-none-any.whl |
|---|---|
| Size | 28.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0f9cea58063685f57862b6d4b70acd75299605d1e02018020926c2cd29c0823e
|
|
BLAKE2b-256 checksum How to use checksums |
58e71891296c5f584940e6efbc0b780eafb0c345414ed20e75776b24541610f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|