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.9.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.9.0
File Size Uploaded
bytewax-0.9.0.tar.gz 3.2 MB Details

Built distributions (wheels)

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

Total release size: 29.7 MB

Release files / bytewax-0.9.0.tar.gz

Download URL bytewax-0.9.0.tar.gz
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
94bf3cce84d1a98547fa1fdcafae223f8e9e2f96897fcc1a699dd84ebe666e46
BLAKE2b-256 checksum
How to use checksums
d1dd3ac31759195724a74f6fbd67bd5b1c9f48852dc64f572ee7be0b719908e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp310-none-win_amd64.whl
Size 653.8 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
1b41acd5f36ee6a2609f0f2b06fbfff324ff4816909a338ffafd913c378647d0
BLAKE2b-256 checksum
How to use checksums
d93fbe8ea45a5ebd38a288a8fa8141d9ec49405162a311298f4e4ec03a35c704
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 4.2 MB
Tags CPython 3.10 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
5ca02718d10dbaef6ae9435d6673ee827bec8a91e88621006a5af7feddde2b6d
BLAKE2b-256 checksum
How to use checksums
4d914a7e173851e40f69e15f5e61dc246405c5bb5693cf1f95d2c6d4bcd4adbf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 1.8 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
e3a4d34eeb79f3da45285f7f57a2f83e6792978974b5213ebb85899a121fb83c
BLAKE2b-256 checksum
How to use checksums
61225ce8bd586fa5af3864923033bbe92204e090809167970aff99796c5e42b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp39-none-win_amd64.whl
Size 653.8 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
32bd5c165559a66672c7026c5f43aba984fa2096f592ae859f0b2803fb632d38
BLAKE2b-256 checksum
How to use checksums
29e382fea5040f8b3d698ef5f8268dc7f0962fea85e143cf3dfd6f3633e5a0b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 4.2 MB
Tags CPython 3.9 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
60a43b349c5fb1743adef1ab5742c57ea092621e66cb382b6653e50d710f562d
BLAKE2b-256 checksum
How to use checksums
6fc3b48ca75feb52e14d94039fa2417c2df1b98804ed8e69850d1936056b6c24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 1.8 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
8870320df918cd8a6d8cfdae74e1fce67f127a9394974cf7eabcc086f9605ab4
BLAKE2b-256 checksum
How to use checksums
f63532490f2821497d3c4a7e6096390e513efa54461a10b520beb62111b4d1cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp38-none-win_amd64.whl
Size 653.9 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
0c7cb2f578a944fb5402f836bbc996289b3280b2e6dcf2c667fef493bc96d70a
BLAKE2b-256 checksum
How to use checksums
b1a6bd556d7721ddd04041abe196f583840e6a77aafa898bf30905fc082655c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 4.2 MB
Tags CPython 3.8 Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
7ee2b6f31b231abc247dc031992141ee140c41a6a946c9166184c11978a2361b
BLAKE2b-256 checksum
How to use checksums
0a5808fbe93648debbfd4ef3f0cce58fc8f2f179c52e0d1e65bdbe9bd95d539d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp38-cp38-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 1.8 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
f72b8936c7835d55dfeabb97e27aace3865f30bb37b8c56a68213c2eb196de13
BLAKE2b-256 checksum
How to use checksums
b35d7c7c2670b7dc06f031c16ab69f1b7310409b5d0a4e172e0c4df808013695
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp37-none-win_amd64.whl
Size 654.0 kB
Tags CPython 3.7 Windows x86-64
SHA-256 checksum
How to use checksums
5f57332e2fa47a53505c575c2d67779683fd0dbd7d9f14c75454bb3d8da5f4cc
BLAKE2b-256 checksum
How to use checksums
1fe66061671c345ce28918fd9ce578b843e8f5544e01cb9cb5f5ca39ee1d6c19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Size 4.2 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.12+ x86-64
SHA-256 checksum
How to use checksums
553a4002272585e082bbf1c2155cd74f5823d8ca9015ed80681700d18e8ada6f
BLAKE2b-256 checksum
How to use checksums
8fb514c509572c72fe327e6be6498d59a49157d0cabecae16dc9d0ca83a87247
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12

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

Download URL bytewax-0.9.0-cp37-cp37m-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Size 1.8 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
8bf521a287d63799522415ddcd07898e5579d7103256f7a27e556ab4a9cbc29d
BLAKE2b-256 checksum
How to use checksums
be24d1bf990c04e08a03645a4b5b6e019ff9608ec8f6346b3bfdf94fe082e489
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.9.12
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