Skip to main content

Actions Status PyPI Bytewax User Guide

Bytewax is an open source Python framework for building highly scalable dataflows in a streaming or batch context.

Get started

Check out our getting started guide.

About

Bytewax lets you build Python based dataflows to process your data for augmentation, advanced analysis, machine learning and more. It is based on Timely Dataflow, which is a cyclic dataflow computational model. At a high-level, dataflow programming is a programming paradigm where program execution is conceptualized as data flowing through a series of operator based steps. Operators are the processing primitives of bytewax. Each of them gives you a “shape” of data transformation, and you give them functions to customize them to a specific task you need. The combination of each operator and their custom logic functions we call a dataflow step. You chain together steps in a dataflow to solve your high-level data processing problem.

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.
  • 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

Example

Here is an example of a simple dataflow program using Bytewax:

from bytewax import Dataflow, run


flow = Dataflow()
flow.map(lambda x: x * x)
flow.capture()


if __name__ == "__main__":
    for epoch, x in sorted(run(flow, enumerate(range(10)))):
        print(x)

Running the program prints the following output:

0
1
4
9
16
25
36
49
64
81

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

For an exhaustive list of examples, checkout 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.



With ❤️ Bytewax

Metadata

Release files for bytewax 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bytewax 0.8.0
File Size Uploaded
bytewax-0.8.0.tar.gz 3.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for bytewax 0.8.0
File
bytewax-0.8.0-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
bytewax-0.8.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.12+ x86-64 Details
bytewax-0.8.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64), macOS 10.9+ x86-64, macOS 11.0+ ARM64 Details
bytewax-0.8.0-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details
bytewax-0.8.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.12+ x86-64 Details
bytewax-0.8.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64, macOS 10.9+ x86-64, macOS 10.9+ universal2 (ARM64, x86-64) Details
bytewax-0.8.0-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details
bytewax-0.8.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.12+ x86-64 Details
bytewax-0.8.0-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl CPython 3.8 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64), macOS 11.0+ ARM64, macOS 10.9+ x86-64 Details
bytewax-0.8.0-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details
bytewax-0.8.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64 Details
bytewax-0.8.0-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ x86-64, macOS 11.0+ ARM64, macOS 10.9+ universal2 (ARM64, x86-64) Details

Total release size: 28.3 MB

Release files / bytewax-0.8.0.tar.gz

Download URL bytewax-0.8.0.tar.gz
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
b85758e3e22d4bd73ccc65ec1f66a32e5c54473353ba40bee30f72925930730b
BLAKE2b-256 checksum
How to use checksums
ef347bb83eaae2272139220eb3d2c48a6f992495515934b1c2d89248fd6de4cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp310-none-win_amd64.whl

Download URL bytewax-0.8.0-cp310-none-win_amd64.whl
Size 621.3 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
9fba012cce20601c9d666ba35632e503e60daa54b3d0694ba291aacafbdb6532
BLAKE2b-256 checksum
How to use checksums
6900f33345b3ad2322d81130fd5ff676901adb843759783298d3e8b9cab46929
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL bytewax-0.8.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 4.0 MB
Tags CPython 3.10 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
06b625309150fc7a0a652067e511b60d54c5eb8859a431dc4f8d54ec6eb75ddb
BLAKE2b-256 checksum
How to use checksums
e207fe4ef7121b0f957f7c83c1ca03213c4844f32f07dfc0c62d1f4a6ca1ad6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl

Download URL bytewax-0.8.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 1.7 MB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ebada74a507e10bb5c874f45e5d29a1da1d21dc4a84a17e31aed38b49ad4b526
BLAKE2b-256 checksum
How to use checksums
55f09b4fbd70618aa6240db8a21cc33c4e105e1c6c339cfabe2e44213b6e716b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp39-none-win_amd64.whl

Download URL bytewax-0.8.0-cp39-none-win_amd64.whl
Size 621.2 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
c9a3857400144cae6e9c143003eba1b07b3d05e7e64f2b3788231bf8f22591fe
BLAKE2b-256 checksum
How to use checksums
a74817d32e6cbc0ab189255c04a23d4896159b5bf3f91f77a203270feb0a9543
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL bytewax-0.8.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 4.0 MB
Tags CPython 3.9 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
3ad1ae039d8062d645fe33468bee189c084e776c0703de7a297cc45c7de27876
BLAKE2b-256 checksum
How to use checksums
93df0d590b0c824e7ebd4820db0fbf4cb2b84be2614b6d849ebe2a7f67a1d465
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl

Download URL bytewax-0.8.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 1.7 MB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b68c5046aedab37c508e8526577c85b82018b520f8d2931eefa5d2efa69965bf
BLAKE2b-256 checksum
How to use checksums
3c63e9a56bc3242df769c729c4d0f11e8340ca01f4a5869694d6c47a8c0aa30a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp38-none-win_amd64.whl

Download URL bytewax-0.8.0-cp38-none-win_amd64.whl
Size 621.5 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
36957e9aa2707de69ad842d4a50d0e80ba236d17ed6de5964df81f097d9c1779
BLAKE2b-256 checksum
How to use checksums
f460cbf6ceefb426bbd4623ac33bc9b82d7e0d7f46cd3f90e25f65ada957e361
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL bytewax-0.8.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 4.0 MB
Tags CPython 3.8 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
f3397d6f1b6663e42a769370186af940f66e633d872b73e1da0987045702e3ef
BLAKE2b-256 checksum
How to use checksums
f8b1deb50d562c4bbbb6122f725a6e433909f17ab862e1640f9fedc818170275
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl

Download URL bytewax-0.8.0-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 1.7 MB
Tags CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
34c7cd9eb553eebf16c809c7bf169ceaec25fb309023b21486613157b990d34b
BLAKE2b-256 checksum
How to use checksums
3519c33a25953be61bea9c5fa04b77403d3338779c82bb41cdf4a4d045586db2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp37-none-win_amd64.whl

Download URL bytewax-0.8.0-cp37-none-win_amd64.whl
Size 621.5 kB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
6e01f811b76e2fc6ddf468ba22a7e09c06d68d0e4393d574d222e7b48ccf9b20
BLAKE2b-256 checksum
How to use checksums
e9e8cb1b7eaf8415f09d2671a5eee3c8863ba8ffcf55625c04df73a11fbf3f24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

Download URL bytewax-0.8.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 4.0 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
77b55d55aa3a703771f1385422f8708f3eb061dd8e4c5c7c959090966c165ebf
BLAKE2b-256 checksum
How to use checksums
ad1560ceaaefa98c75a967ec6c106476aee9bb0a2ac44abd17fe371a679f24c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / bytewax-0.8.0-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl

Download URL bytewax-0.8.0-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 1.7 MB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9dc4f6e68fb82f3542eabd50395e6ae938004ad06e13577de740d782aaee233a
BLAKE2b-256 checksum
How to use checksums
1ee57408edf6c48f6fcae506387958e6d8328d31e415fcd9e8f82a9e38684586
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page