Skip to main content

faust

Python Stream Processing Fork

python versions version codecov slack Code style: black pre-commit license downloads

Installation

pip install faust-streaming

Documentation

Why the fork

We have decided to fork the original Faust project because there is a critical process of releasing new versions which causes uncertainty in the community. Everybody is welcome to contribute to this fork, and you can be added as a maintainer.

We want to:

  • Ensure continues release
  • Code quality
  • Use of latest versions of kafka drivers (for now only aiokafka)
  • Support kafka transactions
  • Update the documentation

and more...

Usage

# Python Streams
# Forever scalable event processing & in-memory durable K/V store;
# as a library w/ asyncio & static typing.
import faust

Faust is a stream processing library, porting the ideas from Kafka Streams to Python.

It is used at Robinhood to build high performance distributed systems and real-time data pipelines that process billions of events every day.

Faust provides both stream processing and event processing, sharing similarity with tools such as Kafka Streams, Apache Spark, Storm, Samza, Flink,

It does not use a DSL, it's just Python! This means you can use all your favorite Python libraries when stream processing: NumPy, PyTorch, Pandas, NLTK, Django, Flask, SQLAlchemy, ++

Faust requires Python 3.6 or later for the new async/await_ syntax, and variable type annotations.

Here's an example processing a stream of incoming orders:

app = faust.App('myapp', broker='kafka://localhost')

# Models describe how messages are serialized:
# {"account_id": "3fae-...", amount": 3}
class Order(faust.Record):
    account_id: str
    amount: int

@app.agent(value_type=Order)
async def order(orders):
    async for order in orders:
        # process infinite stream of orders.
        print(f'Order for {order.account_id}: {order.amount}')

The Agent decorator defines a "stream processor" that essentially consumes from a Kafka topic and does something for every event it receives.

The agent is an async def function, so can also perform other operations asynchronously, such as web requests.

This system can persist state, acting like a database. Tables are named distributed key/value stores you can use as regular Python dictionaries.

Tables are stored locally on each machine using a super fast embedded database written in C++, called RocksDB.

Tables can also store aggregate counts that are optionally "windowed" so you can keep track of "number of clicks from the last day," or "number of clicks in the last hour." for example. Like Kafka Streams, we support tumbling, hopping and sliding windows of time, and old windows can be expired to stop data from filling up.

For reliability, we use a Kafka topic as "write-ahead-log". Whenever a key is changed we publish to the changelog. Standby nodes consume from this changelog to keep an exact replica of the data and enables instant recovery should any of the nodes fail.

To the user a table is just a dictionary, but data is persisted between restarts and replicated across nodes so on failover other nodes can take over automatically.

You can count page views by URL:

# data sent to 'clicks' topic sharded by URL key.
# e.g. key="http://example.com" value="1"
click_topic = app.topic('clicks', key_type=str, value_type=int)

# default value for missing URL will be 0 with `default=int`
counts = app.Table('click_counts', default=int)

@app.agent(click_topic)
async def count_click(clicks):
    async for url, count in clicks.items():
        counts[url] += count

The data sent to the Kafka topic is partitioned, which means the clicks will be sharded by URL in such a way that every count for the same URL will be delivered to the same Faust worker instance.

Faust supports any type of stream data: bytes, Unicode and serialized structures, but also comes with "Models" that use modern Python syntax to describe how keys and values in streams are serialized:

# Order is a json serialized dictionary,
# having these fields:

class Order(faust.Record):
    account_id: str
    product_id: str
    price: float
    quantity: float = 1.0

orders_topic = app.topic('orders', key_type=str, value_type=Order)

@app.agent(orders_topic)
async def process_order(orders):
    async for order in orders:
        # process each order using regular Python
        total_price = order.price * order.quantity
        await send_order_received_email(order.account_id, order)

Faust is statically typed, using the mypy type checker, so you can take advantage of static types when writing applications.

The Faust source code is small, well organized, and serves as a good resource for learning the implementation of Kafka Streams.

Learn more about Faust in the introduction introduction page to read more about Faust, system requirements, installation instructions, community resources, and more.

or go directly to the quickstart tutorial to see Faust in action by programming a streaming application.

then explore the User Guide for in-depth information organized by topic.

Local development

  1. Clone the project
  2. Create a virtualenv: python3.7 -m venv venv && source venv/bin/activate
  3. Install the requirements: ./scripts/install
  4. Run lint: ./scripts/lint
  5. Run tests: ./scripts/tests

Faust key points

Simple

Faust is extremely easy to use. To get started using other stream processing solutions you have complicated hello-world projects, and infrastructure requirements. Faust only requires Kafka, the rest is just Python, so If you know Python you can already use Faust to do stream processing, and it can integrate with just about anything.

Here's one of the easier applications you can make::

import faust

class Greeting(faust.Record):
    from_name: str
    to_name: str

app = faust.App('hello-app', broker='kafka://localhost')
topic = app.topic('hello-topic', value_type=Greeting)

@app.agent(topic)
async def hello(greetings):
    async for greeting in greetings:
        print(f'Hello from {greeting.from_name} to {greeting.to_name}')

@app.timer(interval=1.0)
async def example_sender(app):
    await hello.send(
        value=Greeting(from_name='Faust', to_name='you'),
    )

if __name__ == '__main__':
    app.main()

You're probably a bit intimidated by the async and await keywords, but you don't have to know how asyncio works to use Faust: just mimic the examples, and you'll be fine.

The example application starts two tasks: one is processing a stream, the other is a background thread sending events to that stream. In a real-life application, your system will publish events to Kafka topics that your processors can consume from, and the background thread is only needed to feed data into our example.

Highly Available

Faust is highly available and can survive network problems and server crashes. In the case of node failure, it can automatically recover, and tables have standby nodes that will take over.

Distributed

Start more instances of your application as needed.

Fast

A single-core Faust worker instance can already process tens of thousands of events every second, and we are reasonably confident that throughput will increase once we can support a more optimized Kafka client.

Flexible

Faust is just Python, and a stream is an infinite asynchronous iterator. If you know how to use Python, you already know how to use Faust, and it works with your favorite Python libraries like Django, Flask, SQLAlchemy, NLTK, NumPy, SciPy, TensorFlow, etc.

Bundles

Faust also defines a group of setuptools extensions that can be used to install Faust and the dependencies for a given feature.

You can specify these in your requirements or on the pip command-line by using brackets. Separate multiple bundles using the comma:

pip install "faust-streaming[rocksdb]"

pip install "faust-streaming[rocksdb,uvloop,fast,redis,aerospike]"

The following bundles are available:

Faust with extras

Stores

RocksDB

For using RocksDB for storing Faust table state. Recommended in production.

pip install faust-streaming[rocksdb] (uses RocksDB 6)

pip install faust-streaming[rocksdict] (uses RocksDB 8, not backwards compatible with 6)

Aerospike

pip install faust-streaming[aerospike] for using Aerospike for storing Faust table state. Recommended if supported

Aerospike Configuration

Aerospike can be enabled as the state store by specifying store="aerospike://"

By default, all tables backed by Aerospike use use_partitioner=True and generate changelog topic events similar to a state store backed by RocksDB. The following configuration options should be passed in as keys to the options parameter in Table namespace : aerospike namespace

ttl: TTL for all KV's in the table

username: username to connect to the Aerospike cluster

password: password to connect to the Aerospike cluster

hosts : the hosts parameter as specified in the aerospike client

policies: the different policies for read/write/scans policies

client: a dict of host and policies defined above

Caching

faust-streaming[redis] for using Redis as a simple caching backend (Memcached-style).

Codecs

faust-streaming[yaml] for using YAML and the PyYAML library in streams.

Optimization

faust-streaming[fast] for installing all the available C speedup extensions to Faust core.

Sensors

faust-streaming[datadog] for using the Datadog Faust monitor.

faust-streaming[statsd] for using the Statsd Faust monitor.

faust-streaming[prometheus] for using the Prometheus Faust monitor.

Event Loops

faust-streaming[uvloop] for using Faust with uvloop.

faust-streaming[eventlet] for using Faust with eventlet

Debugging

faust-streaming[debug] for using aiomonitor to connect and debug a running Faust worker.

faust-streaming[setproctitle]when the setproctitle module is installed the Faust worker will use it to set a nicer process name in ps/top listings.vAlso installed with the fast and debug bundles.

Downloading and installing from source

Download the latest version of Faust from https://pypi.org/project/faust-streaming/

You can install it by doing:

$ tar xvfz faust-streaming-0.0.0.tar.gz
$ cd faust-streaming-0.0.0
$ python setup.py build
# python setup.py install

The last command must be executed as a privileged user if you are not currently using a virtualenv.

Using the development version

With pip

You can install the latest snapshot of Faust using the following pip command:

pip install https://github.com/faust-streaming/faust/zipball/master#egg=faust

FAQ

Can I use Faust with Django/Flask/etc

Yes! Use eventlet as a bridge to integrate with asyncio.

Using eventlet

This approach works with any blocking Python library that can work with eventlet

Using eventlet requires you to install the faust-aioeventlet module, and you can install this as a bundle along with Faust:

pip install -U faust-streaming[eventlet]

Then to actually use eventlet as the event loop you have to either use the -L <faust --loop> argument to the faust program:

faust -L eventlet -A myproj worker -l info

or add import mode.loop.eventlet at the top of your entry point script:

#!/usr/bin/env python3
import mode.loop.eventlet  # noqa

It's very important this is at the very top of the module, and that it executes before you import libraries.

Can I use Faust with Tornado

Yes! Use the tornado.platform.asyncio bridge

Can I use Faust with Twisted

Yes! Use the asyncio reactor implementation: https://twistedmatrix.com/documents/current/api/twisted.internet.asyncioreactor.html

Will you support Python 2.7 or Python 3.5

No. Faust requires Python 3.10 or later, since it heavily uses features that were introduced in Python 3.6 (async, await, variable type annotations).

I get a maximum number of open files exceeded error by RocksDB when running a Faust app locally. How can I fix this

You may need to increase the limit for the maximum number of open files. On macOS and Linux you can use:

ulimit -n max_open_files to increase the open files limit to max_open_files.

On docker, you can use the --ulimit flag:

docker run --ulimit nofile=50000:100000 <image-tag> where 50000 is the soft limit, and 100000 is the hard limit See the difference.

What kafka versions faust supports

Faust supports kafka with version >= 0.10.

Getting Help

Slack

For discussions about the usage, development, and future of Faust, please join the fauststream Slack.

Resources

Bug tracker

If you have any suggestions, bug reports, or annoyances please report them to our issue tracker at https://github.com/faust-streaming/faust/issues/

License

This software is licensed under the New BSD License. See the LICENSE file in the top distribution directory for the full license text.

Contributing

Development of Faust happens at GitHub

You're highly encouraged to participate in the development of Faust.

Code of Conduct

Everyone interacting in the project's code bases, issue trackers, chat rooms, and mailing lists is expected to follow the Faust Code of Conduct.

As contributors and maintainers of these projects, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.

We are committed to making participation in these projects a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.

Examples of unacceptable behavior by participants include:

  • The use of sexualized language or imagery
  • Personal attacks
  • Trolling or insulting/derogatory comments
  • Public or private harassment
  • Publishing other's private information, such as physical or electronic addresses, without explicit permission
  • Other unethical or unprofessional conduct.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.

This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

faust_streaming-0.15.3.tar.gz (921.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

faust_streaming-0.15.3-cp315-cp315t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

faust_streaming-0.15.3-cp315-cp315t-macosx_11_0_arm64.whl (613.3 kB view details)

Uploaded CPython 3.15tmacOS 11.0+ ARM64

faust_streaming-0.15.3-cp315-cp315t-macosx_10_15_x86_64.whl (624.5 kB view details)

Uploaded CPython 3.15tmacOS 10.15+ x86-64

faust_streaming-0.15.3-cp315-cp315-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

faust_streaming-0.15.3-cp315-cp315-macosx_11_0_arm64.whl (597.5 kB view details)

Uploaded CPython 3.15macOS 11.0+ ARM64

faust_streaming-0.15.3-cp315-cp315-macosx_10_15_x86_64.whl (611.7 kB view details)

Uploaded CPython 3.15macOS 10.15+ x86-64

faust_streaming-0.15.3-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

faust_streaming-0.15.3-cp314-cp314t-macosx_11_0_arm64.whl (615.2 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

faust_streaming-0.15.3-cp314-cp314t-macosx_10_15_x86_64.whl (626.5 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

faust_streaming-0.15.3-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

faust_streaming-0.15.3-cp314-cp314-macosx_11_0_arm64.whl (597.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

faust_streaming-0.15.3-cp314-cp314-macosx_10_15_x86_64.whl (612.0 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

faust_streaming-0.15.3-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

faust_streaming-0.15.3-cp313-cp313-macosx_11_0_arm64.whl (596.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

faust_streaming-0.15.3-cp313-cp313-macosx_10_13_x86_64.whl (611.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

faust_streaming-0.15.3-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.5+ x86-64

faust_streaming-0.15.3-cp312-cp312-macosx_11_0_arm64.whl (600.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

faust_streaming-0.15.3-cp312-cp312-macosx_10_13_x86_64.whl (613.8 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

faust_streaming-0.15.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

faust_streaming-0.15.3-cp311-cp311-macosx_11_0_arm64.whl (599.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

faust_streaming-0.15.3-cp311-cp311-macosx_10_9_x86_64.whl (610.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

faust_streaming-0.15.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

faust_streaming-0.15.3-cp310-cp310-macosx_11_0_arm64.whl (601.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

faust_streaming-0.15.3-cp310-cp310-macosx_10_9_x86_64.whl (611.8 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file faust_streaming-0.15.3.tar.gz.

File metadata

  • Download URL: faust_streaming-0.15.3.tar.gz
  • Upload date:
  • Size: 921.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for faust_streaming-0.15.3.tar.gz
Algorithm Hash digest
SHA256 51d6de8d7984c1e47ce961ba4c066e82a6b69d7b02d6bc27129677c4bfb1235f
MD5 8001e59f51cef2098461d990b0f7adc1
BLAKE2b-256 30e29f0f230e8cb4ee37ee1cb912dae3db77a00df246bdec68509410f5dd6625

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3.tar.gz:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp315-cp315t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp315-cp315t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 6458cc9870c38b54cdfddeb08e6e8e567c993511028f4f648947b4e58f10ab4d
MD5 02e5f3961716cd5c1fb28374b0be5a99
BLAKE2b-256 137ca5b0b2c1814c69cb30f8b8687690cfc403533dc7643a6a2ac1b0ce0d5485

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp315-cp315t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp315-cp315t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp315-cp315t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d8b9429e7905dfd03e8da5decd755b26e4e62a41a74a9b1ed67a2fb03e26b6b5
MD5 c0a3bbcdcd600e35d1b2d86691e023bd
BLAKE2b-256 33fd945e3b3e4b2bd93572b3db66b573b3547c350c9b35e220300c2dd37c8e54

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp315-cp315t-macosx_11_0_arm64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp315-cp315t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp315-cp315t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3f2ca4d208191dd033cbc4a87045675fa52fbe4e949083920c416ebdd07c8f5b
MD5 4c58300074325ea87eefe31a979ef051
BLAKE2b-256 65fc2e18460d9f3c3354ed755a8b7355ecec96afb34fbe096168f659436125f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp315-cp315t-macosx_10_15_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp315-cp315-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp315-cp315-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 f389d9ac552b7e360cdf8ed432163573dc13f48d12af5e038b7de745bad74f6c
MD5 95faf6896df4087b6725dc7b92073a59
BLAKE2b-256 e1bb34b6178d9b76432915069b23ef79674fb4a63e2bcf9aaeec2c135545ec5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp315-cp315-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp315-cp315-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp315-cp315-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3c4f7e8539d962368d6c82f89739f74b6ccaa7d466ac954f8acfe2e006f405a6
MD5 0b8ec2af060cdd33415cf27f94c39ec0
BLAKE2b-256 64157cdac0f4f5dd713c1c54daa7ebd8140730d7d995e29e5a4897fb3cff5d7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp315-cp315-macosx_11_0_arm64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp315-cp315-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp315-cp315-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cdd7331a8abbee3ac95f60b0d151e47846fd374c1a937c408bb73daab315927e
MD5 884ed4f19e1c3b96c58942d648472a7c
BLAKE2b-256 39e84b9eb75a0398f05988deba0e6f9f52f87fc12729ef4d9a705bb7c218ca2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp315-cp315-macosx_10_15_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 a8b436777f7f902c8fbb92940538c090c659dfd6e62b43d4d6f52a5456ffcf23
MD5 07a9c00e0a5a86056f7343d7fe597f27
BLAKE2b-256 21c177dd7c22444333a2c1bfa8197675cdcf24a24c21ed63d8c2a66ae8b8cd66

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 76633793e40ce893cf0d3c8ac6b21d646a6a208416427f36ebcf5869ab9a7ba8
MD5 78090b7c511d33c75f9be479dc80d686
BLAKE2b-256 64b277421082b384e5e84a6482a6dca4cc9a345fcd8af6023f1329b3371f8491

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9553b051b89ad06e663e079b1bf86319724ce7f5b12898806ebc58b2bf8ea0d8
MD5 2dddfc3987f810685812e708977dd9ea
BLAKE2b-256 a8485ceab081c54cd38cca65739b948ce3297e883e8706f4ab4246deb042d8f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp314-cp314t-macosx_10_15_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ee7e6f89f4209484fd15b09be8dd510919ca0bd42e569fbc71e68f491d63d67e
MD5 e1723e89c380109cd7e2ec6f1e501e3b
BLAKE2b-256 99cd2048e2b17fd6b7c89399d4c92056c53d6aa1d182c65587b1e7a2df4e7d68

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e4bffbe70eacb785ddb8fa6a8df5a7ae416f21be918f74442db7c5ac7079d8a
MD5 48b0f5b5b7a166cab25b7730488e0d2e
BLAKE2b-256 bd57b8a212fb43f04200ff12ebc8a75fbc790e1f6c53e31c3a8bde35a4dd2632

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 dd5b2083002c6eccba52401793db9b9ddeb5cd920f94ea862128af22b87d314c
MD5 040a4ab1d3267e2623821639b553c960
BLAKE2b-256 c64068ffaf88cdd87398ef882d7fdd9d10626b3acc51455e4af6bf248e93094f

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp314-cp314-macosx_10_15_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 59d45be6dd20915184be98add46f81f995cc7196b7246fe378bc1f32d58448c1
MD5 e1bb929af7cea6c28593aa60701d78c6
BLAKE2b-256 8adbbe772218ef03411d45abbed22e2e03112306bd90f56f1f42fcb1f8a77a00

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb3780ce43fade953eb2feec9cb67701d83c799f335ae145da40de37b293d752
MD5 4788325051f73fd6dddabef50b284156
BLAKE2b-256 dbfaa327306ff0f1e6c61ac51a93cd984f1f554d051da3c6f1c9770ffd63cafb

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ed388348d01c92f7a07c80321c381bc817ff20b1804ff51ca0112402fec75b52
MD5 9c25824491f562fb5de8518cdf660d64
BLAKE2b-256 3464a3185abbb7fdd1b0f96409c71425cdd5a8f1f01c96fcb17f877f39bb8b1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 6766ac9a311731b840764ebed65032705c77ed90f226e1bfd5f415b3a307e1e6
MD5 b4d3aecc44d04862802c92d03e0cf116
BLAKE2b-256 8d9c91e47156cb065f74bce7c7b649e834e10e8fbe60820da9a47a97ab4c0ac1

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7442db79fff739de4b336186550c3d3bbe664d3e7f18e845990920cc1ea0494a
MD5 2e30ad2fb0cfcc29eada23326225af0e
BLAKE2b-256 9c89fead14aac633e814696b7feb7fc65e85d5c60fa64671ef55f858204b2463

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 58bb2fb66b50444e103e9c08b858466e69c17adf2f0aef0d62f5a89942b926d8
MD5 835cb010888babdd43bb8cc02f5fed70
BLAKE2b-256 9f7eba06e982d5bca954403ee9124811394d2dcb72d59d53f92592904a0e538d

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 4c9159a79559d8e31c8c1e37deca6f74f0ff79d39d7f863b2a19e3771f783daf
MD5 d89ac59b5cb38afce08c46a6eb8990a6
BLAKE2b-256 d42e15aac3e5453d2c047f0ac387debfae00071ded24b3c17cea65ed45111c0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 730a0da7e8e795840b73ad567e02ac03de8497e46ab29459dd9665c11bdb1947
MD5 631676831bc496e797f6a99ae373e8bc
BLAKE2b-256 2c53f6354a1dea82c9d185d0e368f4f089ebf4333ce8de1e3eb0dca7dba2b11a

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6683a4e77a68858259d5682aca4d68dd588e14956a0e08fe55bfb4e00363976a
MD5 8cbf3293b40eb33977c86218109ef471
BLAKE2b-256 122b98857ed075babc28d20e2f0b7871cab7c5a81212c1db281fa2023fa42ac2

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 10e56b7cffc4d300333eae0170bcef30fc96cc3103a3af62e847830e0e0237fa
MD5 3b9e9320c2a2f81046a7bb06670a51f7
BLAKE2b-256 8448505692812893d0d832d9522e93de82d8c223f7322cfdd83a7f4da0c249d4

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 281177f3abd44b1302b369f487b442bfadc98b4b2416658a4da6c907fe9b3eac
MD5 4761accc355972b0d2f3139120068595
BLAKE2b-256 ac90170c95898174fd82254ae05f3ec0b701446ee86f2eb48d9c627b958735a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file faust_streaming-0.15.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.15.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8d0e25c5fd06d5d6e68600a0ff02f5ab104763eebefcd3f9c31a0557fe3a29c8
MD5 05c17fe3e84a49928eeda328d14f58f2
BLAKE2b-256 2472629f39863098564cf1b4cdda2c4dad319ee4f41173a76f0c057b12b7d9ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.15.3-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: python-package.yml on faust-streaming/faust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.15.3 This release

25 files

0.13.2

21 files

0.13.1

21 files

0.13.0

21 files

0.12.1

17 files

0.12.0

16 files

0.11.3

13 files

0.11.2

13 files

0.11.1

13 files

0.11.0

9 files

0.10.24

9 files

0.10.23

1 file

0.10.22

1 file

0.10.21

9 files

0.10.20

9 files

0.10.19

9 files

0.10.18

8 files

0.10.17

9 files

0.10.16

9 files

0.10.15

9 files

0.10.14

9 files

0.10.13

16 files

0.10.12

16 files

0.10.11

16 files

0.10.10

16 files

0.10.9

16 files

0.10.8

16 files

0.10.7

16 files

0.10.6

16 files

0.10.5

16 files

0.10.4

16 files

0.10.3

16 files

0.10.2

16 files

0.10.1

16 files

0.10.0

16 files

0.9.5

13 files

0.9.4

13 files

0.9.3

13 files

0.9.2

13 files

0.9.1

13 files

0.9.0

13 files

0.8.11

13 files

0.8.10

21 files

0.8.9

21 files

0.8.8

21 files

0.8.7

9 files

0.8.6

2 files

0.8.5

2 files

0.8.4

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.9

2 files

0.7.8

2 files

0.7.7

2 files

0.7.6

2 files

0.7.5

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.14

2 files

0.6.13

2 files

0.6.12

2 files

0.6.11

2 files

0.6.10

2 files

0.6.9

1 file

0.6.8

1 file

0.6.7

2 files

0.6.6

1 file

0.6.5

1 file

0.6.4

1 file

0.6.3

1 file

0.6.2

1 file

0.6.1

1 file

0.6.0

1 file

0.5.2

2 files

0.5.1

2 files

0.5.0

1 file

0.4.7

1 file

0.4.6

1 file

0.4.5

1 file

0.4.4

1 file

0.4.3

1 file

0.4.2

1 file

0.4.1

1 file

0.4.0

1 file

0.3.1

1 file

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

0.0.0

1 file

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page