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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.11 Windows x86-64

xorbits-0.3.0-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.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

xorbits-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

xorbits-0.3.0-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.0-cp310-cp310-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.10 Windows x86-64

xorbits-0.3.0-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.0-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.0-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.0-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.0-cp39-cp39-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 Windows x86

xorbits-0.3.0-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.0-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.0-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.0-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.0-cp38-cp38-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 Windows x86

xorbits-0.3.0-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.0-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.0-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.0-cp38-cp38-macosx_10_9_universal2.whl (4.2 MB view details)

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

File details

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

File metadata

  • Download URL: xorbits-0.3.0.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.0.tar.gz
Algorithm Hash digest
SHA256 c3098c67d9aeb6d31516bde5b3aaeca04662185bbfcfed928fdd1af5ae987972
MD5 533f349414ed2445b125a5dca9e10b5e
BLAKE2b-256 1a17aa97042c63b982d18a15dad9121077333aa15011f01458b8d06b802e9c49

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.0-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.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ebb2d6385ac8b528f816a12b7da38b07dd66bbf97050be2d7b14b18da8c4ec09
MD5 be34fb5aefe603310288fc463c0e2d25
BLAKE2b-256 fa768348f116033f272eb786c4238392e6d4b72f103a4143376c9d79127abfd6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f1917181cc8cc62faad492a0d88dfff165aace2affec047aaa0fca52a236d6cb
MD5 6e92ee7db3207383a5f736c0e9a733fe
BLAKE2b-256 b44db7cc3491fddb225f7a4cc17fab0da8b9f86b878877fa796a4ab71637eb5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b2ad039e1795040ebe5d9fd7cadac53ae63119c89a6b4042003045a7488bac7b
MD5 7a22760d97a96ce5fb5b009bd6621669
BLAKE2b-256 7d0b2b607a4824491c743c35dda6b5728a316b9c915a1cadcf2df94ebe991b4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 294427ddc6c8c8fdfbd535564bb85f37703515ea7d493a76c1d2537ebfe150fb
MD5 0ac5568ed91da60a16492eed8bc8591d
BLAKE2b-256 e3d1b3cc9d0ce3d739b2aac517d6ea5b7f55bc03fa89cf9fb765d5a277ed391d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e2a34ca015c7aa41f6538e3cca87ce6eaf42af15454b68f3c10474608f0fa5d6
MD5 bc48da78724b69772041c8147a938135
BLAKE2b-256 8327ddc9228f399c1c2b498180ef1b85e4a9e50babc52873cc11589b0cab69c2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.0-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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 822819f6dfe782d60e9e9a601f4c3e6eea3c9db226ffa29aa371fc8923bb5125
MD5 7d2e9e39069837c79348c95e7d444f81
BLAKE2b-256 2d8196ae62c37fc6ddf537c6a1b8410e0fe8e86950de5a68b684ed3bc43d6e8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5b623428c4e1332001bd82ce1fe33cc60a006f33eab449a5a733504cb4eb4f95
MD5 e3f842fac0f71dcc47b9f33806f4e57d
BLAKE2b-256 b55252146f382ffa0ed51320473c90e71fda91a7b661f9175cb91de3e1da1232

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c74d5188d697d4f4c6d75da60e7bbc4b5e1dbf09f66dffe6a8826ab9c502eb79
MD5 ce2b4d4f5b73b20bcaefc00b32cb9ddb
BLAKE2b-256 131f22ce32ac5a586f89b853eade627cf7a0e202d0270ee2fa86818650fde3d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 461786d7d1945074d65b432b9a12093d9101db134c2b69e9008cfe3d692258cc
MD5 f75a260193d81f95741692dc8f1ffebb
BLAKE2b-256 2fb1783390fd1a1a19de5877e1a9af96e68ae5eedb80851ec67f6dc529e41714

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f108ee30d848e9f30e27c8fb4ce2a1f3c346b43b0b306f50330cfade6cd8deb1
MD5 09201df4a0c70231344f930c331e2a1e
BLAKE2b-256 7cecf3c91a530285d89940caba819550b67dc808c4254ee0e663f390e20a7bb9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.0-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.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9af2eb693e8efd89de812a0344552e2f852f650fcb3ed616c04c6b20be88167e
MD5 0ec3a5bef479df5a82ac65c84a96cf90
BLAKE2b-256 ea32621adf5c7054511d6a229bea766bbb93ee8f9ca029984128d8f56f21e063

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.0-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.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 9dbcedc7f9d7679d7359445e459731413c3a1e2522718012980f9d725bac0aee
MD5 4dbb1cd73412d877f117afaa3f38c531
BLAKE2b-256 04cac64d63ec8431fd2d11adbd84f6733c3b9ae064a3f5c9e18eda20abe77427

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c072dd06b4626636f96352cfe3086622296bd677fef648348ca02eae54408435
MD5 c8e1f34d97bebd1dac35ba219b80385d
BLAKE2b-256 5f372447e6a2361a02625833f3c982e5d49e1d74f5decaad8fee3fbac17e7b9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 52aa83f2f2dd3da1b051b0bd6856650130d8fc94e9deafda4fd1d45891cd3cef
MD5 cf43d562fc68e4e7736a609f00c213b0
BLAKE2b-256 23170f54a1f28351796bc71d919af7585d04f8558c965c3b3c3ace9c02bb519e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 832a4bd612ce46d747166676ebadf8161ca484c19f1d52017c30d79af0f26f81
MD5 36355fa7d28d3209aa2173eb5532ddaf
BLAKE2b-256 329ec4b101338c73e97151451f172000f706cbf494564e18e9b12b3ff832963d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e192b6645ab519ab04a448d2b58a21093103e2990ecc700cf209fa7537182d73
MD5 b20f2988f0074b73302a0df0d8e2c85c
BLAKE2b-256 598f4f2eb63b608e0a17da8307bcf53ae0fd7a96e025e04f88045eedd03e67cd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.0-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.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5886601b9b9d1d1a7655a4897af7a9d8e1cae10e157f315d4b16f7e4172de579
MD5 3caf5f3f2e655dc8cb4f71830f55d234
BLAKE2b-256 d0957f5d446cad36bbcbf9d5f88bb935bc301e40d44cf1c21b0a6f688b30b224

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.3.0-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.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 d95fdf577914f1ff52ae0698f1adafbbb1d04dcffbef12114d841b68eb84712e
MD5 714aaf8d3b5719c53339b6db18738f66
BLAKE2b-256 2ebce185672ff2fe940ddd040f513133cc79d6336d8723cd81b4696846aa6d49

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 15f93005d4e179bd76092e6e0ae4ae947bf05862dded89960f884108454643f2
MD5 82aabdfc11ec2dd8ce57f5c5c27ee2b8
BLAKE2b-256 b6fce4dc0e6e781926a260495149370a03a81d91834fa0eb3fe59f0b605e29ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 08bad55026bd465d9e82809a5b3589571c0c4f44fee8d1786d8be484fe38636c
MD5 30982df25dc4952ae7efe267ea73dae8
BLAKE2b-256 302e2fa03a6e99aba50c58d74fb58307821bfccd671dc21aab7c38bc620c0d5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1fbe0aed4c88ded4bf1cf5070ba6cbdbdf1efc4cf81a5713d64323a32731aebd
MD5 e2fc6fd794017d86e77174980366ead1
BLAKE2b-256 3d39d047e3300e601f4a1fe4700a7d54a6d27191c49c4548f64066959e9b9a00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.3.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e71b296fcb242140ed2c58bc41da77f33ad02e0b35a35887c72b577a8974c395
MD5 43e79c3f520b93da4db8fe4c209f9936
BLAKE2b-256 c4840443fa83f27d916549d20dd07ee0250016d5a9dced8b99bb32c4aee4f752

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