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.6b4
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.6b4.tar.gz | 39.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| slipstream_async-1.0.6b4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 67.5 kB
Release files / slipstream_async-1.0.6b4.tar.gz
| Download URL | slipstream_async-1.0.6b4.tar.gz |
|---|---|
| Size | 39.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d87ef479c384ffb861949e360946e79e31402e9c18d7858bfa0267f6884b2844
|
|
BLAKE2b-256 checksum How to use checksums |
8186f989067d7a8fc433644ce3ddd153932486e228a7f6b5df429da1131003d4
|
| 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.6b4-py3-none-any.whl
| Download URL | slipstream_async-1.0.6b4-py3-none-any.whl |
|---|---|
| Size | 27.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
710af3254e9fce1e73559443b862fb7a67ebcc5c9144f0b8d0bdc722f75eca5b
|
|
BLAKE2b-256 checksum How to use checksums |
d0c33c82ebb326a75c608d4209cf47c75b90e367c6b518d4772cdaf40cd394a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|