Skip to main content

No project description provided

Project description

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

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.11.0-cp310-none-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.10Windows x86-64

bytewax-0.11.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (20.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64

bytewax-0.11.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.6 MB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

bytewax-0.11.0-cp39-none-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.9Windows x86-64

bytewax-0.11.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (20.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

bytewax-0.11.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.6 MB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

bytewax-0.11.0-cp38-none-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.8Windows x86-64

bytewax-0.11.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (20.2 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

bytewax-0.11.0-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.6 MB view details)

Uploaded CPython 3.8macOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

bytewax-0.11.0-cp37-none-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.7Windows x86-64

bytewax-0.11.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (20.2 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

bytewax-0.11.0-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (7.6 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ universal2 (ARM64, x86-64)macOS 10.9+ x86-64macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: bytewax-0.11.0-cp310-none-win_amd64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for bytewax-0.11.0-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 08ca0761d63ab8012ef8f0751e91b24289d9892e3fc34ab516a0cda499c29516
MD5 1e629a1c70440cc31186be5fdd8aa66a
BLAKE2b-256 8adbd7f38da3ce155ddf70bef904a19694c2a51b3793adc3f29119d017c79143

See more details on using hashes here.

File details

Details for the file bytewax-0.11.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.11.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9b7e89210cf21041d5c54e06c4c577d72f70c89d0eadab7617725c39f6066c06
MD5 11553474097053dff2dc4cbc0d4dcf25
BLAKE2b-256 a2b48cfe6e500d37e8d4f59b954192ed08cc48a1ada970cdd78d848859451d4c

See more details on using hashes here.

File details

Details for the file bytewax-0.11.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for bytewax-0.11.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6caaa544fabae0d33a63b8361e11607821cc3991f4a54c12037ebaa698e81479
MD5 aabab5c91b9037620b8cacd0dc412774
BLAKE2b-256 2fe7aef28cec05efe75529658f4de40bba0e8a3f6e37cf672e6e8ffc465edf1c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bytewax-0.11.0-cp39-none-win_amd64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for bytewax-0.11.0-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 2474bea9edb3e38e4f96985032f6c408cfd9c92fa9d6a9fe55147853fab8d0ae
MD5 e1e04cf44e7c533f73ab4031fd9b22e5
BLAKE2b-256 68838324a657896806c7b79ac4a7593f10a41c409e53ee2ab9403e550fc854f5

See more details on using hashes here.

File details

Details for the file bytewax-0.11.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.11.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c2afa23a22b14983ba2c67a095949b6f33b3b695d4e321b24f9919064fc1d948
MD5 ad00f786ebcbf499ff4ba7d4321909c1
BLAKE2b-256 d3ec0bdaeed1f7300d8e766279d6a2b790d10fcd661e6d2403c681aea8b480b8

See more details on using hashes here.

File details

Details for the file bytewax-0.11.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for bytewax-0.11.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 ab5430d8715203bfc8fe78779255ccfdbc057a603c41dfa5e429f3126f338845
MD5 47bc552c40949a0636370635b727c77a
BLAKE2b-256 5bb13170597576ab94c4117b2ff2f74f94dd0af608724e5c80cc77161603ab79

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bytewax-0.11.0-cp38-none-win_amd64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for bytewax-0.11.0-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 c9f81d335f63df70321570338c8682b2d0a745cfeeaec049ad49357f61fe8437
MD5 abb35ecf25c3f36922f78260b98b1e77
BLAKE2b-256 94cb00613e7aa82808849dc27639575174535752b11c9bc524608e78c71836e2

See more details on using hashes here.

File details

Details for the file bytewax-0.11.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.11.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3d08002b8c86929e78f513bb60d54aabb06065331a256d0713030bc1c2ec1ba8
MD5 3b2c6ab106596b8a7568bd63fe6b4b57
BLAKE2b-256 ffb838079cc214c38ab0ca296de2ac7def818cbcc1dcee6d8ae1bee3adf61484

See more details on using hashes here.

File details

Details for the file bytewax-0.11.0-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for bytewax-0.11.0-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 98c327b66a68184028e9737015528d87ab4dac0f3fbd8ccf7f9032bc59ae9ee4
MD5 02c1588b52bd91afe728c887628df4b5
BLAKE2b-256 7d8cf532dbc4b8fe288ad52bef96fa14a13038266a2293de8ee97cd6fe405f44

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bytewax-0.11.0-cp37-none-win_amd64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.7, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for bytewax-0.11.0-cp37-none-win_amd64.whl
Algorithm Hash digest
SHA256 2dd7f10cbd37673e1d51a0af99a5b6c509b9240621c55925ebd5ebe43147bab4
MD5 df7739796ba0e4858927af403d5cf629
BLAKE2b-256 dafc738d39b04f9ea4fa4d98ee69dc997ffb04da448077afad0cab2a04b2de8a

See more details on using hashes here.

File details

Details for the file bytewax-0.11.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for bytewax-0.11.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3bcc6fffe09a5eb1f046b214361c0e03749fcea3dff637dedc423e322cef965f
MD5 305c3ef1763f027f2044fede6db9f1a9
BLAKE2b-256 c77766548f7841bf8042ca528d4db138605b704cdba998e0b8851c0a45fa2aea

See more details on using hashes here.

File details

Details for the file bytewax-0.11.0-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for bytewax-0.11.0-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7e8cd766efad6dde9fe56746fffce9b661a76ca223a6b522b293a7178241a6aa
MD5 2781cc04e17d7d70eda78b767632e1e2
BLAKE2b-256 1c7f3dc3f1997da0549917194b342dfae861e9c204763766a76c7ad0357f7e58

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