Skip to main content

Scalable Python data science, in an API compatible & lightning fast way.

Project description


Xorbits: scalable Python data science, familiar & fast.

PyPI Latest Release License Coverage Build Status Doc Slack

What is it?

Xorbits is a scalable Python data science framework that aims to scale the whole Python data science world, including numpy, pandas, scikit-learn and many other libraries. It can leverage multi cores or GPUs to accelerate computation on a single machine, or scale out up to thousands of machines to support processing terabytes of data. In our benchmark test, Xorbits is the fastest framework among the most popular distributed data science frameworks.

As for the name of xorbits, it has many meanings, you can treat it as X-or-bits or X-orbits or xor-bits, just have fun to comprehend it in your own way.

At a glance


Codes are almost identical except for the import, replace import pandas with import xorbits.pandas will just work, so does numpy and so forth.

Where to get it

The source code is currently hosted on GitHub at: https://github.com/xprobe-inc/xorbits

Binary installers for the latest released version are available at the Python Package Index (PyPI).

# PyPI
pip install xorbits

API compatibility

As long as you know how to use numpy, pandas and so forth, you would probably know how to use xorbits.

All Xorbits APIs implemented or planned include:

API Implemented version or plan
xorbits.pandas v0.1.0
xorbits.numpy v0.1.0
xorbits.sklearn Planned in the near future
xorbits.xgboost Planned in the near future
xorbits.lightgbm Planned in the near future
xorbits.xarray Planned in the future

Lightning fast speed

Xorbits is the fastest compared to other popular frameworks according to our benchmark tests.

We did benchmarks for TPC-H at scale factor 100 (~100 GB datasets) and 1000 (~1 TB datasets). The performances are shown as below.

TPC-H SF100: Xorbits vs Dask

Xorbits vs Dask

Q21 was excluded since Dask ran out of memory. Across all queries, Xorbits was found to be 7.3x faster than Dask.

TPC-H SF100: Xorbits vs Pandas API on Spark

Xorbits vs Pandas API on Spark

Across all queries, the two systems have roughly similar performance, but Xorbits provided much better API compatibility. Pandas API on Spark failed on Q1, Q4, Q7, Q21, and ran out of memory on Q20.

TPC-H SF100: Xorbits vs Modin

Xorbits vs Modin

Although Modin ran out of memory for most of the queries that involve heavy data shuffles, making the performance difference less obvious, Xorbits was still found to be 3.2x faster than Modin.

TPC-H SF1000: Xorbits

Xorbits

Although Xorbits is able to pass all the queries in a row, Dask, Pandas API on Spark and Modin failed on most of the queries. Thus, we are not able to compare the performance difference now, and we plan to try again later.

For more information, see performance benchmarks.

Deployment

Xorbits can be deployed on your local machine, largely deployed to a cluster via command lines, or deploy via Kubernetes and clouds.

Deployment Description
Local Running Xorbits on a local machine, e.g. laptop
Cluster Deploy Xorbits to existing cluster via command lines
Kubernetes Deploy Xorbits to existing k8s cluster via python codes
Cloud Deploy Xorbits to various cloud platforms via python codes

License

Apache 2

Documentation

The official documentation is hosted on: https://doc.xorbits.io

Roadmaps

Main goals we want to achieve in the future include:

  • Transitioning from pandas native to arrow native for data storage,
    it will reduce the memory cost substantially and is more friendly for compute engine.
  • Introducing native engines that leverage technologies like vectorization and codegen to accelerate computations.
  • Scale as many libraries and algorithms as possible!

More detailed roadmaps will be revealed soon, stay tuned!

Relationship with Mars

The creators of Xorbits are mainly those of Mars, we built Xorbits currently on Mars to reduce duplicated work, but the vision of Xorbits suggests that it's not appropriate to put everything into Mars, instead, we need a new project to support the roadmaps better. In the future, we will replace some core internal components with other upcoming ones we will propose, stay tuned!

Getting involved

Platform Purpose
Discourse Forum Asking usage questions and discussing development.
Github Issues Reporting bugs and filing feature requests.
Slack Collaborating with other Xorbits users.
StackOverflow Asking questions about how to use Xorbits.
Twitter Staying up-to-date on new features.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xorbits-0.1.0.tar.gz (1.9 MB view details)

Uploaded Source

Built Distributions

xorbits-0.1.0-cp310-cp310-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.10 Windows x86-64

xorbits-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

xorbits-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

xorbits-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

xorbits-0.1.0-cp310-cp310-macosx_10_9_universal2.whl (5.2 MB view details)

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

xorbits-0.1.0-cp39-cp39-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.9 Windows x86-64

xorbits-0.1.0-cp39-cp39-win32.whl (3.7 MB view details)

Uploaded CPython 3.9 Windows x86

xorbits-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

xorbits-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

xorbits-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

xorbits-0.1.0-cp39-cp39-macosx_10_9_universal2.whl (5.2 MB view details)

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

xorbits-0.1.0-cp38-cp38-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

xorbits-0.1.0-cp38-cp38-win32.whl (3.7 MB view details)

Uploaded CPython 3.8 Windows x86

xorbits-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

xorbits-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

xorbits-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

xorbits-0.1.0-cp38-cp38-macosx_10_9_universal2.whl (5.1 MB view details)

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

xorbits-0.1.0-cp37-cp37m-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.7m Windows x86-64

xorbits-0.1.0-cp37-cp37m-win32.whl (3.7 MB view details)

Uploaded CPython 3.7m Windows x86

xorbits-0.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.2 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

xorbits-0.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

xorbits-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file xorbits-0.1.0.tar.gz.

File metadata

  • Download URL: xorbits-0.1.0.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0cbe98eb28cb1f15f7fd2caa6a18fc24aec9a6731e444aecc9185486f3daca54
MD5 fbc09b4b0d8354bc98fec58d6e65b5b9
BLAKE2b-256 19be92e95b3ccdbccad3f00d2381fd4d5732eb5991637d573904848c4f58dc37

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: xorbits-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8b5bb82d617f719dcf3b46b450447c2e88255d4b4ddcc4ab3363a1140a6a8f2b
MD5 699aa8bc74001f0a828588f604442a60
BLAKE2b-256 577114e32d334a7ac06b9280e49e5f6988e95db8f883c70a7f8fc1925d16ee7a

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9036808cae71c0c54da1b9dc09e8a330fa1b0e282b7a26bcff511d286e3db3b9
MD5 a4f71c95e46caf49de3dbb4357d98208
BLAKE2b-256 eda999d841376b455675f190f6361fdadebc5ccfb861c38ffe5115fc725c4842

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 496dbd6179c648eccc00a5b994d6d2cee62485494f260fb2b7ad530febafbde9
MD5 cabc3b23b25e83b62ca1ebe2b39c3638
BLAKE2b-256 aa031932f931e133f20ab9aa8795a2d8b7322c59a69e254a67fdd077c128f2c5

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c36ffb1caf55d9036b3bbc66448d1f98a0b4bd87a5ca60df0398ce349fe4f5eb
MD5 8b7e7748eda6bcdf6f33b3d94023ef6a
BLAKE2b-256 a4d12d348a57b56664df1ffbe522f425956ccae76abdbba444ec281014234d63

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2211d457d2700ef3f8cd1affb40295a9f42b4472a06d1fdaacbcbc6251765ecc
MD5 14b024ba69f5f107417c3911f1d04378
BLAKE2b-256 e85a4a047f4bb6d46bc727e12b4b307cfa9f23d6041ab537d6a2600999ba7997

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: xorbits-0.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 50f741f10d9bc995bb01f20616930a8b9931dfc2c16e3345ea87cb38fb76278c
MD5 a97ab81358ed07388ead4c95b0de6858
BLAKE2b-256 442a629baacf4f4096f827e85dc7a4ea4dc06f9e12a8ad757ea6c809143fb336

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: xorbits-0.1.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 e598fb053eca182042f5b46adc3b58a8c078a03f8946a71379132bc3bd79dd5b
MD5 7da1957cdd9f9c3b0def97c70b2b576b
BLAKE2b-256 dd0d31b2c74ff46daa6a39ef432d56d8a3e0e2e83ed265c02a5c145279d437c2

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f470aac424893bba80393e21615db0b3fbfc2859eeafcfce5bf56617142369ea
MD5 17439a3835cd4c0bba521cbd7ad9960d
BLAKE2b-256 4f1ab4382cdfc21ef455b80300e526e2ce7d84cc378e4df293108415952ce956

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f419d4df3af872a5b68defce4d3e81609336634e17be8be56de7af157ae3e9ff
MD5 a87b0e617299a113193740c2986174b6
BLAKE2b-256 a30576438d5f0e49d988618a307b68de3c1aa8c9f06c5cadd55581396475dc66

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7f3d142ee66f4cbacd0fd669361f520bda6131f08e40f006e9a306ccc983bc78
MD5 ea1071f500baf0722ed9071996c5a314
BLAKE2b-256 ed076eb9ab04ddebc6bf8fcd37b9e72dacad8d441a819d207f94e24f5cdede6c

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f578e3a69b7aed73628597505228a92f35dfef6b594dc3991d36919ef97039fa
MD5 6bafd0ab64044f102d9bd00b7c98c8c9
BLAKE2b-256 aa325254008895af9be20f3674f0dcca056b97c62f083129481c78f270b7ec75

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: xorbits-0.1.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5f088450bc784c8171d89c0da0417ab616dff399fed094d33db9c4a871baa94b
MD5 2dc88d50ce6b2d1e6d45af81a352fdb3
BLAKE2b-256 83a5e7f3246c06c26911904e33a8a9d5891230a1093858093dbc6e913d35ee4c

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: xorbits-0.1.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.1.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 87a79fe17d6d4ea28b10ad619a4b63d92e21f6d4261b6c8acaa53e5382ea299c
MD5 5bf7094f3984a0ee65e8abb7dffdc1c0
BLAKE2b-256 07c05239741725625105da60a246baf631a7c1ee1837f7ae8a50467773a46875

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 acab878bd869e10634582d58f2306bf87c3793b60bb42aba9bdb8c7f227e5a32
MD5 10df048041c9a4ea53d0e6915c8e3bc4
BLAKE2b-256 79ef0fd5e8db5ec50e1dac495cbd497625d8b75a721d0c9281352aed3d32bd27

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cac2aac859ba37449243d1744f1b62a42c7ce466eebc2f35f827abe486e67b12
MD5 f3f789ffddb3a536852d57474a1e357e
BLAKE2b-256 648ea52d41e838446b8edab6d5aee4d194ecab0167b5564e623ed3c82596cc1e

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cc591868c8415a2fcf1eaf008133c7b7264a669a26e1866858554e30c02f9d61
MD5 9d1d7881ac0b43e710766952ff04f6da
BLAKE2b-256 924a8e8c4db5695609838d28790c9a604bc7331dd94db72f2607e4be87b6cd8c

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 8f0288efb209775dffaf87ef6162a4b2a024034a3cb1791b18ee1afca71d85e0
MD5 0d7bea5488ed6845ed886f4147dc2a36
BLAKE2b-256 c4f687cb70ba6741e0c590818fb2ff3bd0624cdd7102b944adaf290368d71833

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: xorbits-0.1.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 3.8 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.1.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 8896cb96206cbd73bebf6df09e516ce08e85961ac479a6a57b0eb7858eb64fac
MD5 efb9a30146da917eb26137f2a25f9b1c
BLAKE2b-256 6e4cd6d14256e838c65d99d1d88a4c6711d93aba1936f6db5c9573a0a9c4418e

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: xorbits-0.1.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 3.7 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.1.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 fd8d66840bd2d9a50b69131c653947848514af5228a2d73feec86076643e06ba
MD5 7378f209cf36c7b16953d7b94e2fdba8
BLAKE2b-256 3f1ef196a48438a3f5a4211c282ab97ab8f7831ecb73344fdebfe3ac406f210e

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a0b1f04e3526a6c776021a014395514eda75220288c1b4fb2bceb718382d8996
MD5 e1097fd0d76a75a16d2f60f977206f4c
BLAKE2b-256 e26b433f8bec8481f10c041719c3833edee89cf60c7a2de54461b931d7071d5e

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9994ee8c5f16c43534ecb7c18e224141ee7e8ff597436f7b7e08a9adba35213d
MD5 c4cb232a8b235a3c76f90a4d464688ef
BLAKE2b-256 4baa80dbd1340aad54383ee15e82f27b35ca0443fd918d4e60bf9b28c251380c

See more details on using hashes here.

File details

Details for the file xorbits-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for xorbits-0.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0bb2cb451c625794e4ed7a2d0db182e3782eeb90ea68ca986141718f165463bf
MD5 045ba265e4e98993f0eb087b39ef0ee6
BLAKE2b-256 9feb41af2b134923d2b4a01cca587490613176a571a9e9d5f35c006da96341e9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page