Metadata-Version: 2.1
Name: cubed
Version: 0.14.2
Summary: Bounded-memory serverless distributed N-dimensional array processing
Author-email: Tom White <tom.e.white@gmail.com>
License: Apache License 2.0
Project-URL: homepage, https://github.com/cubed-dev/cubed
Project-URL: documentation, https://tomwhite.github.io/cubed
Project-URL: repository, https://github.com/cubed-dev/cubed
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiostream
Requires-Dist: array-api-compat
Requires-Dist: cloudpickle
Requires-Dist: donfig
Requires-Dist: fsspec
Requires-Dist: mypy-extensions
Requires-Dist: networkx !=2.8.3,!=2.8.4,!=2.8.5,!=2.8.6,!=2.8.7,!=2.8.8,!=3.0.*,!=3.1.*,!=3.2.*
Requires-Dist: numpy >=1.22
Requires-Dist: tenacity
Requires-Dist: toolz
Requires-Dist: zarr
Provides-Extra: beam
Requires-Dist: apache-beam ; extra == 'beam'
Requires-Dist: gcsfs ; extra == 'beam'
Provides-Extra: coiled
Requires-Dist: cubed[diagnostics] ; extra == 'coiled'
Requires-Dist: coiled ; extra == 'coiled'
Requires-Dist: dask[complete] ; extra == 'coiled'
Requires-Dist: s3fs ; extra == 'coiled'
Provides-Extra: dask
Requires-Dist: dask ; extra == 'dask'
Provides-Extra: dask-distributed
Requires-Dist: distributed ; extra == 'dask-distributed'
Provides-Extra: diagnostics
Requires-Dist: tqdm ; extra == 'diagnostics'
Requires-Dist: graphviz ; extra == 'diagnostics'
Requires-Dist: jinja2 ; extra == 'diagnostics'
Requires-Dist: pydot ; extra == 'diagnostics'
Requires-Dist: pandas ; extra == 'diagnostics'
Requires-Dist: matplotlib ; extra == 'diagnostics'
Requires-Dist: rich ; extra == 'diagnostics'
Requires-Dist: seaborn ; extra == 'diagnostics'
Provides-Extra: lithops
Requires-Dist: lithops[aws] >=2.7.0 ; extra == 'lithops'
Provides-Extra: modal
Requires-Dist: cubed[diagnostics] ; extra == 'modal'
Requires-Dist: modal-client ; extra == 'modal'
Requires-Dist: s3fs ; extra == 'modal'
Provides-Extra: modal-gcp
Requires-Dist: cubed[diagnostics] ; extra == 'modal-gcp'
Requires-Dist: modal-client ; extra == 'modal-gcp'
Requires-Dist: gcsfs ; extra == 'modal-gcp'
Provides-Extra: test
Requires-Dist: apache-beam ; extra == 'test'
Requires-Dist: cubed[diagnostics,lithops] ; extra == 'test'
Requires-Dist: dill ; extra == 'test'
Requires-Dist: numpy-groupies ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: pytest-mock ; extra == 'test'
Provides-Extra: test-dask
Requires-Dist: cubed[dask,diagnostics] ; extra == 'test-dask'
Requires-Dist: dill ; extra == 'test-dask'
Requires-Dist: numpy-groupies ; extra == 'test-dask'
Requires-Dist: pytest ; extra == 'test-dask'
Requires-Dist: pytest-cov ; extra == 'test-dask'
Requires-Dist: pytest-mock ; extra == 'test-dask'
Provides-Extra: test-dask-distributed
Requires-Dist: cubed[dask-distributed,diagnostics] ; extra == 'test-dask-distributed'
Requires-Dist: dill ; extra == 'test-dask-distributed'
Requires-Dist: numpy-groupies ; extra == 'test-dask-distributed'
Requires-Dist: pytest ; extra == 'test-dask-distributed'
Requires-Dist: pytest-cov ; extra == 'test-dask-distributed'
Requires-Dist: pytest-mock ; extra == 'test-dask-distributed'
Provides-Extra: test-modal
Requires-Dist: cubed[modal] ; extra == 'test-modal'
Requires-Dist: numpy-groupies ; extra == 'test-modal'
Requires-Dist: dill ; extra == 'test-modal'
Requires-Dist: pytest ; extra == 'test-modal'
Requires-Dist: pytest-cov ; extra == 'test-modal'
Requires-Dist: pytest-mock ; extra == 'test-modal'

# Cubed

**_Note: this is a proof-of-concept, and many things are incomplete or don't work._**

## Bounded-memory serverless distributed N-dimensional array processing

Cubed is a distributed N-dimensional array library implemented in Python using bounded-memory serverless processing and Zarr for storage.

- Implements the [Python Array API standard](https://data-apis.org/array-api/latest/) (see [coverage status](./api_status.md))
- Guaranteed maximum memory usage for standard array functions
- Follows [Dask Array](https://docs.dask.org/en/stable/array.html)'s chunked array API (`map_blocks`, `rechunk`, `apply_gufunc`, etc)
- [Zarr](https://zarr.readthedocs.io/en/stable/) for persistent and intermediate storage
- Multiple serverless runtimes: Python (in-process), [Lithops](https://lithops-cloud.github.io/), [Modal](https://modal.com/), [Apache Beam](https://beam.apache.org/)
- Integration with [Xarray](https://xarray.dev/) via [cubed-xarray](https://github.com/xarray-contrib/cubed-xarray)

[Documentation](https://tomwhite.github.io/cubed)
