Skip to main content

No project description provided

Project description

Actions Status PyPI Bytewax User Guide

Bytewax

Python Stateful Stream Processing Framework

Bytewax is a Python framework that simplifies event and stream processing. Because Bytewax couples the stream and event processing capabilities of Flink, Spark, and Kafka Streams with the friendly and familiar interface of Python, you can re-use the Python libraries you already know and love. Connect data sources, run stateful transformations and write to various different downstream systems with built-in connectors or existing Python libraries.

Screen Shot 2022-10-07 at 2 22 49 PM

How it all works

Bytewax is a Python framework and Rust distributed processing engine that uses a dataflow computational model to provide parallelizable stream processing and event processing capabilities similar to Flink, Spark, and Kafka Streams. You can use Bytewax for a variety of workloads from moving data à la Kafka Connect style all the way to advanced online machine learning workloads. Bytewax is not limited to streaming applications but excels anywhere that data can be distributed at the input and output.

Bytewax has an accompanying command line interface, waxctl, which supports the deployment of dataflows on cloud vms or kuberentes. You can download it here.


Getting Started with Bytewax

pip install bytewax

Install waxctl

A Bytewax dataflow is Python code that will represent an input, a series of processing steps, and an output. The inputs could range from a Kafka stream to a WebSocket and the outputs could vary from a data lake to a key-value store.

from bytewax.dataflow import Dataflow
from bytewax.connectors.kafka import KafkaInput

# Bytewax has input and output helpers for common input and output data sources
# but you can also create your own with the ManualOutputConfig.

At a high-level, the dataflow compute model is one in which a program execution is conceptualized as data flowing through a series of operator-based steps. Operators like map and filter are the processing primitives of Bytewax. Each of them gives you a “shape” of data transformation, and you give them regular Python functions to customize them to a specific task you need. See the documentation for a list of the available operators

import json


def deserialize(key_bytes__payload_bytes):
    _, payload_bytes = key_bytes__payload_bytes
    event_data = json.loads(payload_bytes) if payload_bytes else None
    return event_data["user_id"], event_data


def anonymize_email(user_id__event_data):
    user_id, event_data = user_id__event_data
    event_data["email"] = "@".join(["******", event_data["email"].split("@")[-1]])
    return user_id, event_data


def remove_bytewax(user_id__event_data):
    user_id, event_data = user_id__event_data
    return "bytewax" not in event_data["email"]


flow = Dataflow()
flow.input("inp", KafkaInput(brokers=["localhost:9092"], topic="web_events"))
flow.map(deserialize)
flow.map(anonymize_email)
flow.filter(remove_bytewax)

Bytewax is a stateful stream processing framework, which means that some operations remember information across multiple events. Windows and aggregations are also stateful, and can be reconstructed in the event of failure. Bytewax can be configured with different state recovery mechanisms to durably persist state in order to recover from failure.

There are multiple stateful operators available like reduce, stateful_map and fold_window. The complete list can be found in the API documentation for all operators. Below we use the fold_window operator with a tumbling window based on system time to gather events and calculate the number of times events have occurred on a per-user basis.

from datetime import datetime, timedelta, timezone
from collections import defaultdict

from bytewax.window import TumblingWindow, SystemClockConfig


def build():
    return defaultdict(lambda: 0)


def count_events(results, event):
    results[event["type"]] += 1
    return results


cc = SystemClockConfig()
align_to = datetime(2023, 1, 1, tzinfo=timezone.utc)
wc = TumblingWindow(length=timedelta(seconds=5), align_to=align_to)

flow.fold_window("session_state_recovery", cc, wc, build, count_events)

Output mechanisms in Bytewax are managed in the output operator. There are a number of helpers that allow you to easily connect and write to other systems (output docs). If there isn’t a helper built, it is easy to build a custom version, which we will do below. Similar the input, Bytewax output can be parallelized and the client connection will occur on the worker.

import json

import psycopg2

from bytewax.outputs import PartitionedOutput, StatefulSink


class PsqlSink(StatefulSink):
    def __init__(self):
        self.conn = psycopg2.connect("dbname=website user=bytewax")
        self.conn.set_session(autocommit=True)
        self.cur = self.conn.cursor()

    def write(self, user_id__user_data):
        user_id, user_data = user_id__user_data
        query_string = """
            INSERT INTO events (user_id, data)
            VALUES (%s, %s)
            ON CONFLICT (user_id)
            DO UPDATE SET data = %s;
        """
        self.cur.execute(
            query_string, (user_id, json.dumps(user_data), json.dumps(user_data))
        )

    def snapshot(self):
        pass

    def close(self):
        self.conn.close()


class PsqlOutput(PartitionedOutput):
    def list_parts(self):
        return {"single"}

    def assign_part(self, item_key):
        return "single"

    def build_part(for_part, resume_state):
        return PsqlSink()


flow.output("out", PsqlOutput())

Bytewax dataflows can be executed on a single host with multiple Python processes, or on multiple hosts. When processing data in a distributed fashion, Bytewax will ensure that all items with the same key are routed to the same host.

python -m bytewax.run my_dataflow:flow

It can also be run in a Docker container as described further in the documentation.

Kubernetes

The recommended way to run dataflows at scale is to leverage the kubernetes ecosystem. To help manage deployment, we built waxctl, which allows you to easily deploy dataflows that will run at huge scale across multiple compute nodes.

waxctl df deploy my_dataflow.py --name my-dataflow

Why Bytewax?

At a high level, Bytewax provides a few major benefits:

  • The operators in Bytewax are largely “data-parallel”, meaning they can operate on independent parts of the data concurrently.
  • Bytewax offers the ability to express higher-level control constructs, like iteration.
  • Bytewax allows you to develop and run your code locally, and then easily scale that code to multiple workers or processes without changes.
  • Bytewax can be used in both a streaming and batch context
  • Ability to leverage the Python ecosystem directly

Community

Slack Is the main forum for communication and discussion.

GitHub Issues is reserved only for actual issues. Please use the slack community for discussions.

Code of Conduct

Usage

Install the latest release with pip:

pip install bytewax

Building From Source

To build a specific branch, you will need to use Maturin and have Rust installed on your machine. Once those have been installed run

maturin develop -E dev

Important: If you are testing with a maturin built version from source, you should use maturin build --release since maturin develop will be slower.

More Examples

For a more complete example, and documentation on the available operators, check out the User Guide and the /examples folder.

License

Bytewax is licensed under the Apache-2.0 license.

Contributing

Contributions are welcome! This community and project would not be what it is without the contributors. All contributions, from bug reports to new features, are welcome and encouraged. Please view the contribution guidelines before getting started.



With ❤️ Bytewax

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

bytewax-0.18.0-cp311-none-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.11Windows x86-64

bytewax-0.18.0-cp311-cp311-manylinux_2_31_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

bytewax-0.18.0-cp311-cp311-manylinux_2_27_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64

bytewax-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (7.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7l

bytewax-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

bytewax-0.18.0-cp311-cp311-macosx_11_0_arm64.whl (5.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

bytewax-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

bytewax-0.18.0-cp310-none-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.10Windows x86-64

bytewax-0.18.0-cp310-cp310-manylinux_2_31_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ x86-64

bytewax-0.18.0-cp310-cp310-manylinux_2_27_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64

bytewax-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (7.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

bytewax-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

bytewax-0.18.0-cp310-cp310-macosx_11_0_arm64.whl (5.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

bytewax-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

bytewax-0.18.0-cp39-none-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.9Windows x86-64

bytewax-0.18.0-cp39-cp39-manylinux_2_31_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.31+ x86-64

bytewax-0.18.0-cp39-cp39-manylinux_2_27_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64

bytewax-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (7.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARMv7l

bytewax-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

bytewax-0.18.0-cp39-cp39-macosx_11_0_arm64.whl (5.9 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

bytewax-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.9macOS 10.12+ x86-64

bytewax-0.18.0-cp38-none-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.8Windows x86-64

bytewax-0.18.0-cp38-cp38-manylinux_2_31_x86_64.whl (8.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.31+ x86-64

bytewax-0.18.0-cp38-cp38-manylinux_2_27_x86_64.whl (8.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64

bytewax-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (7.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARMv7l

bytewax-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

bytewax-0.18.0-cp38-cp38-macosx_11_0_arm64.whl (5.9 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

bytewax-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl (6.1 MB view details)

Uploaded CPython 3.8macOS 10.12+ x86-64

File details

Details for the file bytewax-0.18.0-cp311-none-win_amd64.whl.

File metadata

  • Download URL: bytewax-0.18.0-cp311-none-win_amd64.whl
  • Upload date:
  • Size: 5.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for bytewax-0.18.0-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 db6be6bf91b1e8e5b5b9ff70e10663fbe8aca7fb63dc4a3960862a26d0c0ef1a
MD5 46d5c0dd78b2b2a2206c1ae815c5378e
BLAKE2b-256 290a80333c945123010b9532f6283b7e90364ca0f8807d4fe0cec63442c3a450

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp311-cp311-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 67a943da580b40c279afbb7bc95ef7198106a2af3102845848fdad3e41c19886
MD5 9a7c83bfcff72b6482400f1d09db3388
BLAKE2b-256 669e02617bac41593aaea3a13ede4be6c64890c2ee6dbf1eac86126758d6dbad

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp311-cp311-manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp311-cp311-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 48d711a43effc29b43bb94b178f9a47665a77a91c7c56b3f7efcf16798c42ac7
MD5 6d684ac51fdf808dca6ec26dda8d3f81
BLAKE2b-256 97a34278e39fd28bdf4445af4ab5751ac1a939cbcecfc39834ee29536f01a795

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5e29611270851b7efca95ff8e488a3f27d2a1cd470d2b3167d4b8191c9202cda
MD5 ec45f811f7844cbe3cd767c3665b4188
BLAKE2b-256 d68a52620b7f7686d1a550c8b593fa8e983651d179490e6ba7c08802727d0c11

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 212095904a892467d5548b946556f6b82cf41825c0b56348216f79964fe75371
MD5 58e0251ae880866f258606f24950d10f
BLAKE2b-256 b50c7f9ca370ef1bbc2c61a4d63218c28f845a1b31fba60c62f6f5b170f03301

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a6d0b46d29668f5662197fb35601387694e282cd3a616abfb3bd0702c2f9ab1d
MD5 cf9af4bca416cfbc2a071364f39560f0
BLAKE2b-256 78986b1daa2713211d3ffc15631ef993d6f936828391bf3c9c4158aef53a8c5a

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1ba79fba29401459447eb5f047e9c20ad7038383cec2d103b23272e2f2700868
MD5 7d23209e73c5e0f120ee1f64e8934241
BLAKE2b-256 7a2d0bc6095829f7ca258878a8c46bdcf01b0eefab19ecd7e60b278757586fb2

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp310-none-win_amd64.whl.

File metadata

  • Download URL: bytewax-0.18.0-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 5.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for bytewax-0.18.0-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 59f8782b8adcb4e080d650f1a59f55ddedfff6227e2b9df3467b240495ee33df
MD5 765293524c5a19a7b02e2a163c4991d2
BLAKE2b-256 1bd5437854b70736b1162a449135bb41f417ba04a860806d74342194a6d15b02

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp310-cp310-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 65420178412a9de61d19c901e9a9c6dadfe8928a39b41bb3abadd5adcbff3f61
MD5 69e1a735fe05556638604d28cf9507d0
BLAKE2b-256 ba04adcb814c82c0c390e85e65986589a7c2a4b6f6464b33039f5e0d51e64d66

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp310-cp310-manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp310-cp310-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 70bc4fa8d034a262bef835bb3277dbb1801db12808c655945ef45c9a655d68d0
MD5 bb6e694aa6ef68b0cf5f15de52e6b7d8
BLAKE2b-256 460b17cb882bcf1237d9ab4c44231a82a5fe7f0ab46f39a166fa0cd93432403b

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d6ceaf813fad858ca2c4e1b39ef9bbb9d80baf9af84e612fd9b860268663de7e
MD5 58d77838312208dad132ead9e4066a76
BLAKE2b-256 24fe743f640e816498c4cb93fce88df3bfd7dbe941f4b59b6e6db7673c902e71

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4c11c3fe7d334e468dc4dfe5a44cb6ad085efbe7d2b84e69c81e535c0a251c09
MD5 69cb85d9ccf91de8897bd02731dea054
BLAKE2b-256 5cd9e1440382f2c4bd05284cedf627a8a1af67b931e047a654a401602ce0b7c2

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d8bb8fa41664b597eaa845f7db9ab693cb624157796551214f70cdb20182b097
MD5 1c682685dedd383cfc7fa3d4f91d5288
BLAKE2b-256 32c22532490cfb8dd0af8a16bad984db611ed136d3eeff7d5dbb731966a2af68

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4bd5e70cfcac86d3c5c990952da6094d23b636011471709662eefabde6823a4a
MD5 11e8ad3075ea0b6911a1b70bfb72772b
BLAKE2b-256 7ab390615e948e7f0b7663085c55e2747b9e0cd222e8e47037814a631cac804d

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp39-none-win_amd64.whl.

File metadata

  • Download URL: bytewax-0.18.0-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 5.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for bytewax-0.18.0-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 7ea4ff76655bfea382fa9d4332cea77ac746209a2649302ee58efc0ab3017ad1
MD5 7e3e693c0ee439187c075144aa210c06
BLAKE2b-256 2f164a21a7d7796df8c9adff4c016ae580009de6d4f89644dadba29dc8011ed5

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp39-cp39-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp39-cp39-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 aec8446f1e6c4b63b561a808760102fbb54a38803cd17025a76518f3cc2cc57f
MD5 c20fd769b89ed15529bf0fdb8a2ab5ff
BLAKE2b-256 32731381dba85f2b29b0f4a7f7d4bba9a01c64318c01f0bd31a514bb6084b4fe

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp39-cp39-manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp39-cp39-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 354a97387f779e476276e4cf4a97328388a71decd65532dc9f208050bf2559ee
MD5 2dea08e5ea3b4206b83f5ef1ad9fe3c0
BLAKE2b-256 6f3532e8ade24ccefde55ec7a4ecd041f8c252e08d3196e17ea36e2028279ca9

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 21bfc9df202730bb02960bd3ae6296a242b1a8bb1abb4f75630432eaf44c7f05
MD5 b4c3f689d3f3be05e3f10b4c310a8e50
BLAKE2b-256 0c20e5e4a92d3882fb0c68cf4572576be0b531453085e3d4ebc7aec91b2b6c1f

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d483dce3bbc795c8ad6ade36101a41ac4b8787272e7210213a28943328325c8
MD5 616950b75ce47fcd44a97944f9085e21
BLAKE2b-256 4a4349dae2070915fc49d468d1a6502d4add0077ceff7770a4a30bc0bf173ca2

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72c4c4f12b29fa9aa8a46aa0d2bfcd9dec2209334e0f4b2c487498436a8f1a19
MD5 e1057520ceedfab6cb4093afa7a68c07
BLAKE2b-256 babd874724a42c18666ebe6f0ff11dacbfe3ba3fabe0c20e6e5ea220e1b2693c

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 04deb6fd499a821d08405c863c1ed364f3bee25aa01868ed352b84deb76c6415
MD5 e75cd8d0b82d77f63df39e820d290f1c
BLAKE2b-256 045cb153cfe9be4be6c6b13c1e61ebe9246498d38ff4b6a06e7ed1d388bd9a1e

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp38-none-win_amd64.whl.

File metadata

  • Download URL: bytewax-0.18.0-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 5.3 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for bytewax-0.18.0-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 d7961d515b3fce6710e4c9961a9d4d39ba23832abd5f56bdca31d0b21ed8bcfb
MD5 ce89508defc197d3f5c47d23b88bd104
BLAKE2b-256 877df1b46c50d355594c74ad83591878555221a919bd793c9364d83424674a2a

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp38-cp38-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp38-cp38-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 a3ae951d8bc035deee12bd696689e463c4fe06b65886b05b899fafa04bb2faa8
MD5 7da4ed0b42a9efa52dfc11ac1d7f246e
BLAKE2b-256 3796654a5f55fcc355143556204a6331c4cc32dad8e26affd83ec9c6532f25cf

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp38-cp38-manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp38-cp38-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 3c409014a10c51a9ad26070189c86105fae8417e3f7d52b9f02bbec92be893ec
MD5 b3c4e840386b7cad5b80dae505cb3c93
BLAKE2b-256 404bbec97554b66279dad6a0f165bdf7086b4fc70928a68b0b6455c6e7d11cab

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 cc3c89257c6a7657cea91bf57278ebf096334d25a117ef00794581e55c81dda4
MD5 8486f53c68ea34031990177e4c851cd7
BLAKE2b-256 2038348008be44fdb769c56c81176070a9b015384e3b9aa123c697a655f94411

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e550d320764824d39069c9d1fb0f1bbba2e11df4a954b46909643060deb5a79c
MD5 e1593fcc733a6aa74fb8b8eeba89a434
BLAKE2b-256 1d768762d443195518930b26e53e452d0bf749c508d69e82b4d152e1a4f89cfd

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d5de6a99b9b144ee2351feb1eb4c15a577a26b82ea27347ef504287342c183a4
MD5 812dfb40e7d8d33eca911f49c743a883
BLAKE2b-256 c82fc2b9b6b9a3e524dfaf8453b967fef151b9e1d4f1b5cf867fe9b6a6961be4

See more details on using hashes here.

File details

Details for the file bytewax-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.18.0-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 52a1c9470339cdde97830d0d878613c3c436d0fc54100d56d12b84440d7df376
MD5 c7f23f8588ebf6f69415018f960e9e36
BLAKE2b-256 f8f2910a5b3d5abb8badd24fad27c53d1179e14bce36da194bb877dbff1571d0

See more details on using hashes here.

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