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

Example

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

from bytewax.dataflow import Dataflow
from bytewax.execution import run_main
from bytewax.inputs import ManualInputConfig
from bytewax.outputs import StdOutputConfig

def input_builder(worker_index, worker_count, resume_from):
    resume_from = None # Ignore recovery logic
    for e in range(10):
        yield resume_from, e

flow = Dataflow()
flow.input("input", ManualInputConfig(input_builder))
flow.map(lambda x: x * x)
flow.capture(StdOutputConfig())

if __name__ == "__main__":
    run_main(flow)

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

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

Built distributions (wheels)

Table of built distributions (wheels) for bytewax 0.11.0
File
bytewax-0.11.0-cp310-none-win_amd64.whl CPython 3.10 none Windows x86-64 Details
bytewax-0.11.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.11.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64, macOS 10.9+ x86-64, macOS 10.9+ universal2 (ARM64, x86-64) Details
bytewax-0.11.0-cp39-none-win_amd64.whl CPython 3.9 none Windows x86-64 Details
bytewax-0.11.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.11.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64), macOS 10.9+ x86-64, macOS 11.0+ ARM64 Details
bytewax-0.11.0-cp38-none-win_amd64.whl CPython 3.8 none Windows x86-64 Details
bytewax-0.11.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.11.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+ x86-64, macOS 11.0+ ARM64, macOS 10.9+ universal2 (ARM64, x86-64) Details
bytewax-0.11.0-cp37-none-win_amd64.whl CPython 3.7 none Windows x86-64 Details
bytewax-0.11.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.11.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+ universal2 (ARM64, x86-64), macOS 10.9+ x86-64, macOS 11.0+ ARM64 Details

Total release size: 124.4 MB

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

Download URL bytewax-0.11.0-cp310-none-win_amd64.whl
Size 3.3 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
08ca0761d63ab8012ef8f0751e91b24289d9892e3fc34ab516a0cda499c29516
BLAKE2b-256 checksum
How to use checksums
8adbd7f38da3ce155ddf70bef904a19694c2a51b3793adc3f29119d017c79143
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 20.2 MB
Tags CPython 3.10 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
9b7e89210cf21041d5c54e06c4c577d72f70c89d0eadab7617725c39f6066c06
BLAKE2b-256 checksum
How to use checksums
a2b48cfe6e500d37e8d4f59b954192ed08cc48a1ada970cdd78d848859451d4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 7.6 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
6caaa544fabae0d33a63b8361e11607821cc3991f4a54c12037ebaa698e81479
BLAKE2b-256 checksum
How to use checksums
2fe7aef28cec05efe75529658f4de40bba0e8a3f6e37cf672e6e8ffc465edf1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp39-none-win_amd64.whl
Size 3.3 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
2474bea9edb3e38e4f96985032f6c408cfd9c92fa9d6a9fe55147853fab8d0ae
BLAKE2b-256 checksum
How to use checksums
68838324a657896806c7b79ac4a7593f10a41c409e53ee2ab9403e550fc854f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 20.2 MB
Tags CPython 3.9 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
c2afa23a22b14983ba2c67a095949b6f33b3b695d4e321b24f9919064fc1d948
BLAKE2b-256 checksum
How to use checksums
d3ec0bdaeed1f7300d8e766279d6a2b790d10fcd661e6d2403c681aea8b480b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 7.6 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
ab5430d8715203bfc8fe78779255ccfdbc057a603c41dfa5e429f3126f338845
BLAKE2b-256 checksum
How to use checksums
5bb13170597576ab94c4117b2ff2f74f94dd0af608724e5c80cc77161603ab79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp38-none-win_amd64.whl
Size 3.3 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
c9f81d335f63df70321570338c8682b2d0a745cfeeaec049ad49357f61fe8437
BLAKE2b-256 checksum
How to use checksums
94cb00613e7aa82808849dc27639575174535752b11c9bc524608e78c71836e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 20.2 MB
Tags CPython 3.8 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
3d08002b8c86929e78f513bb60d54aabb06065331a256d0713030bc1c2ec1ba8
BLAKE2b-256 checksum
How to use checksums
ffb838079cc214c38ab0ca296de2ac7def818cbcc1dcee6d8ae1bee3adf61484
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 7.6 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
98c327b66a68184028e9737015528d87ab4dac0f3fbd8ccf7f9032bc59ae9ee4
BLAKE2b-256 checksum
How to use checksums
7d8cf532dbc4b8fe288ad52bef96fa14a13038266a2293de8ee97cd6fe405f44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp37-none-win_amd64.whl
Size 3.3 MB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
2dd7f10cbd37673e1d51a0af99a5b6c509b9240621c55925ebd5ebe43147bab4
BLAKE2b-256 checksum
How to use checksums
dafc738d39b04f9ea4fa4d98ee69dc997ffb04da448077afad0cab2a04b2de8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 20.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
3bcc6fffe09a5eb1f046b214361c0e03749fcea3dff637dedc423e322cef965f
BLAKE2b-256 checksum
How to use checksums
c77766548f7841bf8042ca528d4db138605b704cdba998e0b8851c0a45fa2aea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13

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

Download URL bytewax-0.11.0-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 7.6 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
7e8cd766efad6dde9fe56746fffce9b661a76ca223a6b522b293a7178241a6aa
BLAKE2b-256 checksum
How to use checksums
1c7f3dc3f1997da0549917194b342dfae861e9c204763766a76c7ad0357f7e58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.9.13
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