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.6b7
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.6b7.tar.gz | 41.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| slipstream_async-1.0.6b7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 69.9 kB
Release files / slipstream_async-1.0.6b7.tar.gz
| Download URL | slipstream_async-1.0.6b7.tar.gz |
|---|---|
| Size | 41.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
58d7cbe03dcf9eed6472b7d1a2f59ffe486aaa8602726e94709b1026d8764b5c
|
|
BLAKE2b-256 checksum How to use checksums |
e362c364e7ea0f5f683248f19ed6a2dcc4ac741d484e65e89a750720f1bd6783
|
| 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.6b7-py3-none-any.whl
| Download URL | slipstream_async-1.0.6b7-py3-none-any.whl |
|---|---|
| Size | 28.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b2ea69abdf60fc35fbb372e88ca57aca406e671975667bb05f920fccd3da958
|
|
BLAKE2b-256 checksum How to use checksums |
48b3dbbca30e24c79a309e724847c4937f9fce527f7822bbfad9a4583d1d8562
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.21
|