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.16.2-cp311-none-win_amd64.whl (6.2 MB view details)

Uploaded CPython 3.11Windows x86-64

bytewax-0.16.2-cp311-cp311-manylinux_2_31_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ x86-64

bytewax-0.16.2-cp311-cp311-manylinux_2_27_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64

bytewax-0.16.2-cp311-cp311-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

bytewax-0.16.2-cp311-cp311-macosx_10_9_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

bytewax-0.16.2-cp310-none-win_amd64.whl (6.2 MB view details)

Uploaded CPython 3.10Windows x86-64

bytewax-0.16.2-cp310-cp310-manylinux_2_31_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ x86-64

bytewax-0.16.2-cp310-cp310-manylinux_2_27_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64

bytewax-0.16.2-cp310-cp310-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

bytewax-0.16.2-cp310-cp310-macosx_10_9_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

bytewax-0.16.2-cp39-none-win_amd64.whl (6.2 MB view details)

Uploaded CPython 3.9Windows x86-64

bytewax-0.16.2-cp39-cp39-manylinux_2_31_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.31+ x86-64

bytewax-0.16.2-cp39-cp39-manylinux_2_27_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64

bytewax-0.16.2-cp39-cp39-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

bytewax-0.16.2-cp39-cp39-macosx_10_9_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

bytewax-0.16.2-cp38-none-win_amd64.whl (6.2 MB view details)

Uploaded CPython 3.8Windows x86-64

bytewax-0.16.2-cp38-cp38-manylinux_2_31_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.31+ x86-64

bytewax-0.16.2-cp38-cp38-manylinux_2_27_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.27+ x86-64

bytewax-0.16.2-cp38-cp38-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

bytewax-0.16.2-cp38-cp38-macosx_10_9_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

bytewax-0.16.2-cp37-none-win_amd64.whl (6.2 MB view details)

Uploaded CPython 3.7Windows x86-64

bytewax-0.16.2-cp37-cp37m-manylinux_2_31_x86_64.whl (9.3 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.31+ x86-64

bytewax-0.16.2-cp37-cp37m-manylinux_2_27_x86_64.whl (9.1 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.27+ x86-64

bytewax-0.16.2-cp37-cp37m-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.7mmacOS 11.0+ ARM64

bytewax-0.16.2-cp37-cp37m-macosx_10_9_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for bytewax-0.16.2-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 a081565c92dba8089d6d38218b87dfee3947c847b6ab915f06d0597e9bc99c23
MD5 0af9b8effb8588b35867ca1efe3c7f5e
BLAKE2b-256 0124f6cf6ebcb6e155ffd0bb716a2479d9a932afdea0d6ccccb599adce587d55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp311-cp311-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 620bac0f60628fdfa4cc4ca5fa48d0828b0f0c346f4630c71ce753e4be5aa24f
MD5 5c298744cd940aefe026c3cf87a7b01e
BLAKE2b-256 5c50f4bd558a38404b2955dca36728efb69951b39a53b803ea82c3b95e1da90c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp311-cp311-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 df76f55a87eb38ff6f88dd3d7cf6d7d9fdb34590f51cb1de4a9ab6f8d6f1b2a9
MD5 8c783dd72a1d3faf1fe367d0d79ba138
BLAKE2b-256 7ac754f49ffa67d28f3c4833cebb16e2713ea5ad1f9846526b317c2c1cabb129

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 774992f0c5717b272e490c72286699be2254ef5bf53b4a973f9208a68d6a242c
MD5 9f4fe71d04257957b26a9087038199d3
BLAKE2b-256 6e7cc0256ff0fbb280b2960c97340c68e56e4cd567411e2e4bcf6bd51d2ebf58

See more details on using hashes here.

File details

Details for the file bytewax-0.16.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.16.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 888e5e8189014ad34279b0ceb8f4546480e3f9ab94845883ca50d11b005c8fe0
MD5 4262ceab2a5d1412347560abd214b963
BLAKE2b-256 60ed4a60d4bdac2827b99d589ba4dd1cb220d489a62d6d3aae351fc8754c2c33

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for bytewax-0.16.2-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 9634a575e9c8f412bb99875b7d095c6f9c61d6911721ea6f00eaf620383a9203
MD5 415e8c78a516586bf1d88710928cb9ff
BLAKE2b-256 c9cf2ccefa46655f56f4e67d7e0cd4fd893250998d9bf74817a239267a15ca93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp310-cp310-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 671559381c900a902bb41d0e0b1a061a1d1f175315802eaba96895a9ff45193f
MD5 5f2f56248719ae0bf8a996d6320c3564
BLAKE2b-256 ac4124dffea989fcecc61146ce82160014f26e7d804df031372be65c2f13c0aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp310-cp310-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 f3293a38bb8a00cd6ae16552cf49208b823d1e0596af46b05ddda3875fcc33f3
MD5 f65fce82191980104b59009dc89700d8
BLAKE2b-256 f38b1451a20840e6167940ccf40ca375c53e06bf84ad1f065c5172784119f25a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3dda2436cdaec60b9aa7aa6f56de3062485d8688f64278cd429d87c7e7b39893
MD5 3c766575e3f601a5d5d319e219d0d778
BLAKE2b-256 d9169f2d920a6be8638520bb40a2ea11d32e2c47ac8241905083d48e051c1a72

See more details on using hashes here.

File details

Details for the file bytewax-0.16.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.16.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a067a2864d1927cbd801a4f8abd05022f90ed56398aecb7cb5a961379da8d431
MD5 5a08f6ba14f59e8dc08999e8a7cd0b7a
BLAKE2b-256 c83c3138a86eaddd70f1268c76b5077ac91ba8c77a27eeab4bbf2daf0ab1df67

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for bytewax-0.16.2-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 672ffc307684dc5fb383fe87c7317f7813a804d161ad2cb0bf6fba4b2ec7740f
MD5 d80524b30bd9cd77987c8dab37421ce7
BLAKE2b-256 43945dc5084167c68325f8a3031c68605e2b523af653c44f729f4daa6c515d02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp39-cp39-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 0e4ff4d40ea19c36ea0e777aa99d0e4ed047005edba14a61dfed04a6a93d72d1
MD5 adc2d3c2408dc9eee8a5a14ccb6e64af
BLAKE2b-256 5f7823da787cdb27f8226f7a643c08faa4771db5a6a6a6c93b42ca254d44feb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp39-cp39-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 677a7eac80554ddb88326e928e233804c2911fe62e5053c7ee50dba4def0ab7e
MD5 0ecbc2eb562f1cf64b57a609049b358e
BLAKE2b-256 a608284a334c9369e55f1d506a04da3654842e2a554cf02bbd3c0322da9c0b0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0a67cf0fa05e6ff101f5ae946331579c3977beb2349360986c830c9f3ea5f6e
MD5 742ca4a8bd43d471c4808e9250cb422c
BLAKE2b-256 3e46ea1061da11482270aeccd4ade1ee367913a003880b91f08fc8c37bbc706f

See more details on using hashes here.

File details

Details for the file bytewax-0.16.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.16.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ff8f4d009b16e9fd6031610c403b62baf7b583b43e71a437b87228f6e49c4f4b
MD5 768166ae24593dc4b8bde13d87fa25b9
BLAKE2b-256 9f36d1208abcd3df4b7dff6932dcd9ae639e30b9c4982c550714a2168083c623

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for bytewax-0.16.2-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 77acb132e6d7a7c2784e28aea6e2e4c5e9a9b802a2d0ee2ccd9ea831eb7a4eff
MD5 bdf865ec242919350ca6353883f1ae90
BLAKE2b-256 91b00ef97a6ef98741190a90daa67900b489826f654aa7a52d2803aa30672ba0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp38-cp38-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 efcfd2ca39b4501c1477cd6a110aa4db11d7d440b4189f962e3b8796e5bdfd1a
MD5 7327f3635210c1d17e03bff6cd302b09
BLAKE2b-256 d6080ff96b30bd467c4dbe7347a0acf64e4073d510c82e273b579c398d5f61b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp38-cp38-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 7af6c962014ef3cb97431be7f1a3b4f691e4f4559af45ad799b20c9f9edfffe3
MD5 274b655f167a847c35c4a19e2f5cd4a5
BLAKE2b-256 c6146a718e877839dc6e892b0a2471a73d3359a7fdabd6040413861f469dae3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bytewax-0.16.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b52b05232b013618d0ffd99f24d52882000a6692eca131e36291a551d8d37829
MD5 9b8b783fe9a83265b8c93cfd28aa30db
BLAKE2b-256 6eef977258e07b139811cf13504cc18da6f72d14bc1565bafe9defc37516a878

See more details on using hashes here.

File details

Details for the file bytewax-0.16.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.16.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 888d43064aa6cff1366117d0603388c3b259e79e964848734b5b058f14f8f8d5
MD5 107ab525f17f90ef15c66f329e96f8c8
BLAKE2b-256 af81ade20de10d248e6016e6665e62c382a9003e32a16802b985ef2421a07eae

See more details on using hashes here.

File details

Details for the file bytewax-0.16.2-cp37-none-win_amd64.whl.

File metadata

  • Download URL: bytewax-0.16.2-cp37-none-win_amd64.whl
  • Upload date:
  • Size: 6.2 MB
  • Tags: CPython 3.7, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for bytewax-0.16.2-cp37-none-win_amd64.whl
Algorithm Hash digest
SHA256 2830b2520699c748795e5f2c8872c5cfe381d5f46523be2725906d037a754b97
MD5 469a6a361fe93e1c794ec616604a6f8b
BLAKE2b-256 01a2e6c46ded62746fc58b1a27ccfaa450110915943f1010e551ab85c164df8a

See more details on using hashes here.

File details

Details for the file bytewax-0.16.2-cp37-cp37m-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.16.2-cp37-cp37m-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 e9152885aa08077d3b3e57a1d1eab6c9bb514397883236f66924244364826095
MD5 b75ba600d9dbfc7a908adea44952f6b4
BLAKE2b-256 28dfe1fba625f57af73d627ddbba297c565cb02368d359610e39c198d8ee8a67

See more details on using hashes here.

File details

Details for the file bytewax-0.16.2-cp37-cp37m-manylinux_2_27_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.16.2-cp37-cp37m-manylinux_2_27_x86_64.whl
Algorithm Hash digest
SHA256 54db166c911ac3db38565dcaabbfd96c5ec479b0041ede2d97ca483ded4f2f71
MD5 3b120a387dd5dd5300c06ca76045ed5e
BLAKE2b-256 235cfcdad8e6da9a7d2be9e57e0ce5546bdcb26d91150e49c89e963866fe1ea7

See more details on using hashes here.

File details

Details for the file bytewax-0.16.2-cp37-cp37m-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for bytewax-0.16.2-cp37-cp37m-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d4e734a53f9332843b75f6d030962ed18461fdec9a65c2a6b8654ecf5e595b15
MD5 1e17f9b517dbe55ba1d9a6bc1142a50a
BLAKE2b-256 b0b5df84ef9ceb8dc56a9f3f7f2dcd0ed98d867ad158952b0c48aa3f1d984c9d

See more details on using hashes here.

File details

Details for the file bytewax-0.16.2-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.16.2-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8c690946293e76e7bcf4381b0ffa4d039364b469b815f567349787252c2ef8ba
MD5 673940dab952de2c0c04b8e36098090f
BLAKE2b-256 ddf41e52579bb0564b6e67051d5ab8e4e953cf499a82b41624e84fc7f82b5555

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