Skip to main content

Python Stream Processing. A Faust fork

Project description

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.

Project details


Release history Release notifications | RSS feed

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.13.0.tar.gz (796.4 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.13.0-cp314-cp314-win_amd64.whl (830.7 kB view details)

Uploaded CPython 3.14Windows x86-64

faust_streaming-0.13.0-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.3 MB view details)

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

faust_streaming-0.13.0-cp314-cp314-macosx_11_0_arm64.whl (515.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

faust_streaming-0.13.0-cp314-cp314-macosx_10_15_x86_64.whl (527.2 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

faust_streaming-0.13.0-cp313-cp313-win_amd64.whl (827.3 kB view details)

Uploaded CPython 3.13Windows x86-64

faust_streaming-0.13.0-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.3 MB view details)

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

faust_streaming-0.13.0-cp313-cp313-macosx_11_0_arm64.whl (514.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

faust_streaming-0.13.0-cp313-cp313-macosx_10_13_x86_64.whl (526.7 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

faust_streaming-0.13.0-cp312-cp312-win_amd64.whl (828.6 kB view details)

Uploaded CPython 3.12Windows x86-64

faust_streaming-0.13.0-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.3 MB view details)

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

faust_streaming-0.13.0-cp312-cp312-macosx_11_0_arm64.whl (516.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

faust_streaming-0.13.0-cp312-cp312-macosx_10_13_x86_64.whl (528.3 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

faust_streaming-0.13.0-cp311-cp311-win_amd64.whl (828.5 kB view details)

Uploaded CPython 3.11Windows x86-64

faust_streaming-0.13.0-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.2 MB view details)

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

faust_streaming-0.13.0-cp311-cp311-macosx_11_0_arm64.whl (517.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

faust_streaming-0.13.0-cp311-cp311-macosx_10_9_x86_64.whl (526.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

faust_streaming-0.13.0-cp310-cp310-win_amd64.whl (828.5 kB view details)

Uploaded CPython 3.10Windows x86-64

faust_streaming-0.13.0-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (1.2 MB view details)

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

faust_streaming-0.13.0-cp310-cp310-macosx_11_0_arm64.whl (517.3 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

faust_streaming-0.13.0-cp310-cp310-macosx_10_9_x86_64.whl (526.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for faust_streaming-0.13.0.tar.gz
Algorithm Hash digest
SHA256 b680210b4db59bb1b2a7b3aa7ccb71bab00f4fc3349c661a2873a11960151e39
MD5 e22e22024a46363bc9ef9dd9502b1b82
BLAKE2b-256 03e7550a24dd7782d420c3de917a9bef5d4c9be1b7d67bc32596b18cffc93311

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0.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.13.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 70c7a2553a3f53a49f36454bbb0176d5a5c10c1ca72c6ba108e8511360937e4c
MD5 af49e76b4c2aa34eac52a541accca4f1
BLAKE2b-256 ec83ed0c5d210de08390b7fb877a3a9e350a77123391fb753bab33787c8fe5a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-cp314-cp314-win_amd64.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.13.0-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.13.0-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 47c5dc257f235a9f267369a5f3ddf288e4bc79315e73f6768e0cb56bd5ebbcbe
MD5 785f5ed18d54e9cc6ae14af0eefa3f84
BLAKE2b-256 817fcd7d213adedf6710585e4f38249a57c26b93e87d141576d87741cecdedbb

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0076d3f38b2713cafae9b134de4f43921b86c929789068fa1427067626ce132b
MD5 8cc3e7232a30dd426dde1a163b2dbeaa
BLAKE2b-256 48875f143535cf8cfb0800576fd6400561d8afeaac23dfe90e0ec422ee542d24

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 70a1fea1a82e4590a8fb8b4d81972a145e004cde2bdbf6b870c267216f9ad69e
MD5 a2a116daa85ce99b45d3f28b2b1a9e79
BLAKE2b-256 b4a32a2fdb98f221ba1418863fc05f194bc13be05e486f10e547be83a121ea05

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6446215de78a89a002ce7126206c193f69be4a89dd0c51aac7452deb09fdc9fe
MD5 5d996dfd2b823bdcb6c04f921a073398
BLAKE2b-256 5e18223be613d69361c8f49533bbbd6b30df4dda4accb49a46fcd91d1758578e

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-cp313-cp313-win_amd64.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.13.0-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.13.0-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 4fb2f0b29406a6e691fee35af78a818fe15d22fe4b40f1608fd05e4a156b50ea
MD5 97343c7eed4e8138acf1b3dc40e054d7
BLAKE2b-256 6c199ad4fd08768f1503187b8ddb037f1c9089b255c8271bef6382cb2a125da2

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c330ba18b84f555e8484cd0883970cd3fd9eaac4e67454484fbaeb13e1561c35
MD5 78348dd411239eb4e9b22a98b9211ee4
BLAKE2b-256 4d56c11c9a6404bb1ee67c7b5da7ba9072e0f8291f4880e7d049a037a1d72cfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 82cfcccefb35b55a56e59d535cbaa100e2a5e2f9898943325e82df752581325b
MD5 05ef99fef20cd02991a73cf9e426b4da
BLAKE2b-256 e82ab1437c97d0635e83989e03d7d8390197296cba8732f48daee179071fcbb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0e90466c31e8dae19bdc2abf77541087534a9b1ef2c2ad0a13fa77c8fae1bfea
MD5 5c759fb554463a4914c2b31589a095af
BLAKE2b-256 bc684fc263fe239faa3d2a494c16584042dd7fd4aee4163ea6d0dbe009095316

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-cp312-cp312-win_amd64.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.13.0-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.13.0-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 b6841192425ad9df8b899fbf536c537d1a1c0183bcfb114fed2f4b4f8b65819e
MD5 38d7979d322594dd49f23376277e81c2
BLAKE2b-256 4e66b9a3b27cb149ff4a09890f0f6cc69decb0d010c1e885067d27d227c7ed4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32d320c979b2cde8c1699f8950a341dabbe0cc08334685014f02d237e9e8cd7b
MD5 cf639edd4cb10c7631e2c58142bb3100
BLAKE2b-256 425e743de81484404d3a40250cb78708143c175a2b33df295025fa8888360d11

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 893700165a2592b784599e30a04a605583d6b516b1da56e5331668c8578097d1
MD5 56d09cfae92aa23d1fe74fd636170e73
BLAKE2b-256 b65e196dc2a23535fd28c0db33297df45b677c97cd2fbc4137825fe27a9bf864

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 52d160aef8ee2aba3413b56fc37a19e23986553f08aaed34211fc9388f60aecf
MD5 6eeeb7a704b020605d4bdf94af0d66ef
BLAKE2b-256 dd73f309a0b143936d2b1d29e4079009197e59c30889a09def96a3eb0651f418

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-cp311-cp311-win_amd64.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.13.0-cp311-cp311-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.13.0-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 ec6e47f89c2347a117d524a3c889d80902c6fbfbc09f97cec858c8bac1d95cd9
MD5 e83dc94025a70b809f2115dd785736ef
BLAKE2b-256 742e08e740c10ae7a7eac39e64873f27da5b8230b8992cdd747a122bbddfb5ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-cp311-cp311-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.13.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e281d9546c148191c52d233ca1aef97e7d0bd64a1256900ad37ef4ddad392a61
MD5 d9353581eee1fc50e3092c36b08bdc78
BLAKE2b-256 4292b0790dd8ec2d95c2e3f8d9fee003e78e8d09c32b8c7612d0a4fd2843534e

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8890598c3340d83a2f422e63e28b8693d892064386f5b4ad395a5f0f0034f064
MD5 e944946eb79279cf47f437a9bc40e02e
BLAKE2b-256 74085bba9b2708e473ec7253a3ba236d2c4b67e3f57e4781d0f9c122ec799177

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7fc39cfc8fba6564eb1ee09defa0962bcb13ef0a81d9d3ff1e862c0815de5cd8
MD5 d44c8231afc43601b2dafe523f899aa5
BLAKE2b-256 9421dbc1f75f1541f7a871f3ea300761f1bff57f6620cda0c3af57a4dfd79233

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-cp310-cp310-win_amd64.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.13.0-cp310-cp310-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.13.0-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 25e656b03267f1c6fd7de3724c96070ce30ce5f75923a16e817598a63f50b618
MD5 c07c50d7da11e69bc43df210585e0b35
BLAKE2b-256 43b8b8ca02d13832582e78a0315dbef0a61f79a9ae9d98a945ba9fd7be5516e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-cp310-cp310-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.13.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 107a5b599304fbfc17b390c0f70d52286fb28f559386e386ee33e6054f9c4c9b
MD5 bca1561b0ae09b5115c9eeac6a73d800
BLAKE2b-256 20c6f79d0d7acb762903eeb33fb2b60054d1da30b59cb71a60fa509045b10083

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.13.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for faust_streaming-0.13.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 65d09a1e46fb2c3eb0fcbfc9d370821b16a0214e7eb8369ff7850d7e977eeeed
MD5 ec840ba8fa1aec2a6d42cc87206edc1a
BLAKE2b-256 6c9531e7d41be133d1f2978cafaa382874210ceff2e853145a48137152ab0f1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for faust_streaming-0.13.0-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.

Supported by

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