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 Twitter

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
xorbits.scipy Planned in the future
xorbits.statsmodels 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 Run Xorbits on a local machine, e.g. your laptop
Cluster Deploy Xorbits to existing cluster via command lines
Kubernetes Deploy Xorbits to existing k8s cluster via python code
Cloud Deploy Xorbits to various cloud platforms via python code
SLURM Deploy Xorbits to SLURM

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.3.1.tar.gz (1.8 MB view details)

Uploaded Source

Built Distributions

xorbits-0.3.1-cp311-cp311-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.11 Windows x86-64

xorbits-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

xorbits-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

xorbits-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

xorbits-0.3.1-cp311-cp311-macosx_10_9_universal2.whl (4.1 MB view details)

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

xorbits-0.3.1-cp310-cp310-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.10 Windows x86-64

xorbits-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

xorbits-0.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

xorbits-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

xorbits-0.3.1-cp310-cp310-macosx_10_9_universal2.whl (4.2 MB view details)

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

xorbits-0.3.1-cp39-cp39-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.9 Windows x86-64

xorbits-0.3.1-cp39-cp39-win32.whl (3.2 MB view details)

Uploaded CPython 3.9 Windows x86

xorbits-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

xorbits-0.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

xorbits-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

xorbits-0.3.1-cp39-cp39-macosx_10_9_universal2.whl (4.2 MB view details)

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

xorbits-0.3.1-cp38-cp38-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.8 Windows x86-64

xorbits-0.3.1-cp38-cp38-win32.whl (3.2 MB view details)

Uploaded CPython 3.8 Windows x86

xorbits-0.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

xorbits-0.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

xorbits-0.3.1-cp38-cp38-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

xorbits-0.3.1-cp38-cp38-macosx_10_9_universal2.whl (4.1 MB view details)

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

File details

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

File metadata

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

File hashes

Hashes for xorbits-0.3.1.tar.gz
Algorithm Hash digest
SHA256 4d9cccb8e37d2902ff6aef8e364d514f59c1615e0ae3d124e00b52dd145fef39
MD5 8fe23b951b8551ac9dcd238213634f5e
BLAKE2b-256 d8d0ec845569201b54d3e20bf00b2b86d77095e00d740535503532a9d934136c

See more details on using hashes here.

File details

Details for the file xorbits-0.3.1-cp311-cp311-win_amd64.whl.

File metadata

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

File hashes

Hashes for xorbits-0.3.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c2670d6d45f8a73439f23ef9beae95a2f3fe75330c8c444881a1a75d7b7fcba9
MD5 c9a37d56d39bc73723e11c60ae137efa
BLAKE2b-256 c121418d74c3c22d6bcde5137af3e16abc38e1bf7269a7fbfcf84527a11d940b

See more details on using hashes here.

File details

Details for the file xorbits-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for xorbits-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 78135049b42720a6dcb6a05546d826b900a46149e790f212ce148f4c073fe07f
MD5 9dd1611eddbe3c5c431fcd8b9152b5c4
BLAKE2b-256 174affeceded9329e388bb28b4ff1f224be3bebff69e53f7cf89e3a8a4fa53f2

See more details on using hashes here.

File details

Details for the file xorbits-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for xorbits-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1de3983db4f3b751ecbe6eb09d1efb299922cf64bad983bd139e803b6bc32c37
MD5 c2bb4a17d434025417cb90d9ef3d753b
BLAKE2b-256 bac2da1859844b9f4fc73d0a5991348f821ba9c09dbe8f372a840926fd27260e

See more details on using hashes here.

File details

Details for the file xorbits-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for xorbits-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 70eb37c6250edae19b3c9f70d5590c503a487845bbf3f9c41cdd356a5eec89cf
MD5 6f377535174e3827a0de5947c27fa27c
BLAKE2b-256 a6eebbee6213a71d510c85b599c4cefa856ff1eb9aa296454352db40e67049e3

See more details on using hashes here.

File details

Details for the file xorbits-0.3.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for xorbits-0.3.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 865478f06d95db7dc6734526e17c24d8f946c7d38d4024bad3c2ed50d6101cdf
MD5 3f3a53a0f88eceba806ff3ed6a91de6e
BLAKE2b-256 83b81971b4db6f15fbd6f67d24f3fe30ab0bfb70af08be9e9f3f85dfdac747ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.1-cp310-cp310-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.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.3.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b9bfeca483ee1ee05f0926fa202b90740ad1cdd825cd5c2b18da167d62a0afba
MD5 2fb61a3749b8f52f5a135dee55130f23
BLAKE2b-256 153dbe91a577fa42fab0f606f9048c91754a64d26c21b21f1d8edba8c1d40726

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7101128052475e580caa3b28bd7703c452e7e326457a342c055d89a86e9a3251
MD5 4da4872d0b226848536aff9c95efd446
BLAKE2b-256 9341364f0080fca6b69dc64c5ed91ab5e851636cf0e03b51fc6bba963bee41d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c74f8a7ea3379f1d5c9220bd5a45b7dfb85c3d695372093af027b651b2e55cab
MD5 adb23f4652d4ae95b83fd26c2f71b22a
BLAKE2b-256 9d9c3b10f44a0b0bf3b18a461311e7e8c83aa43a7fb907d2cba90422300a2d28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 20d0b5d2cb3d0bbcf223532e55fa50d96966aca7cf8387fa32d0867945529515
MD5 b0d39403937704d9396c0ea8f86101cd
BLAKE2b-256 dd5037bcf26ec39ef1ce91ad51ba23dda94ff3e57c3306472b5be420449ce614

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 9d0d49f200f3952ff67cce4135c54fdccd270e82f7897ceebeaff136f0816f85
MD5 67d842e0c8f91bdb714f72fc7894e9f3
BLAKE2b-256 99da548196c32eb388d00f79ba0a14f1a71439d4984992bc5b0d075b2bfc1f69

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.1-cp39-cp39-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.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.3.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 14516ebb27fdf78ece6fa3db51b1ca9383839a8f2ea3d52dbbf4ce4db91c304b
MD5 bcde8b9f518f760d24c0486aeb9fedb7
BLAKE2b-256 e49f8390b403acce13d31eebed053d211fcd660beb2de28791defaba39f1c5c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.1-cp39-cp39-win32.whl
  • Upload date:
  • Size: 3.2 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.3.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 b31bce0084e09f9da7df3ad5e284aa172f1cb2c3a02feb9037ffab7efb80ca5c
MD5 5f1269e08617b924fb750275f5098346
BLAKE2b-256 9915d93d8547f59b8361fbb61a662556fa24b73dcbf2a0d7a0e24e2f161acbe0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 426b418e80eb23a6856c036f19462554fb0af15fb4a784e1440d92a5750aca74
MD5 d731def8990a3bf9d805871f5cefc0ab
BLAKE2b-256 202d4900c9a535bcf41dcd00e1661afc966ff09167a4b9cad182a2a9e8f82d48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1c678072c36424d548a84e308b3e2487a3aed24ee922d24f33ea65ed10bc20df
MD5 915f03570caa4857b7c8dfaecdb407e5
BLAKE2b-256 713313f00ddcba81aedb6d29d8057a97ef843330930cfebcc072e043176c0350

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dc977c3a628a1fa0689455b5afeb950c373ea80bf751d025cc7b0e2cf8599c6b
MD5 ec29281c19f485f0d35e1f16b5ce7ec9
BLAKE2b-256 3189dc862d4264b137ec99a1841dca572e903f590bc16a948467df08dd0fd153

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6fd1ae931715fb94ba2b77c4545e1da72102d114d8c6f16727c54ddb8729845a
MD5 6fd408378cb5f104c14be01da590849f
BLAKE2b-256 741d534eb9a14ef8f67162f28713be28254025c099f9082dfa5392ad33661421

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.1-cp38-cp38-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.2 CPython/3.9.16

File hashes

Hashes for xorbits-0.3.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9d5b7cbbf8f7963534ca3433d3e0fc75d6b0e518bf767650a577b6ecfbe5d1c5
MD5 22e6e9eb2ef42a2c2a10fcb56715f237
BLAKE2b-256 d4eb2d1b18b6dc0f2fd43cd54e2edcc2368b7af82520af610bb091890f7f9896

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.1-cp38-cp38-win32.whl
  • Upload date:
  • Size: 3.2 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.3.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 c189c468679b96049da7664e9a4d6454384e5fad12a0975c079017d0377d0d97
MD5 7e9961f440c9b0405f62406392ab1a7d
BLAKE2b-256 e9a3a05e5dbaa9a048c408b8f2f60bd42e361e0c8e59102a6207e9589e4955b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b079bd2300d54951419bab0c4e8c57f496e84264bb63c0e43906806caf2ea566
MD5 b7d25d0faaf1a98434452bef65d7f34a
BLAKE2b-256 66a165fac6b529e3f5934e0523c672be82dc3bfed1c4fc8a4dfcbbad71e3ff05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e069b033c9f7b7ad1ae8320a3546fa932eb1d21e6bc85e41e0eb753fe173796a
MD5 cd01ac4cf943f3630821f1f830fc1d30
BLAKE2b-256 11f4e857fa9faf5d6b8af4443b615049e36191bfee54e7f4686c14c623d4236e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 56850e3b7286734e318ede878a8ee0e0dc3c84a08a8fed0114ed0355b0015bfb
MD5 24c5b63150a0024d708bc09f997d3a6d
BLAKE2b-256 15effd6b87b11dbf35104aaac2d1b4499d0c55e227958b9dbb3bf606752e5cb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 48c4b5315f1d1ed8bbb3a6829dfcc086b08dbc69bb17ea587a3a13ddb81311a9
MD5 a6ef2349f76f9403acc06880e6b58295
BLAKE2b-256 d92edcc74bb3f4e96c2a3d08769c90a3ee30aadcd0d5ffc5ec56e78bd5a4200c

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