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

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

Uploaded Source

Built Distributions

xorbits-0.2.1-cp311-cp311-win_amd64.whl (3.8 MB view details)

Uploaded CPython 3.11 Windows x86-64

xorbits-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

xorbits-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

xorbits-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

xorbits-0.2.1-cp311-cp311-macosx_10_9_universal2.whl (5.2 MB view details)

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

xorbits-0.2.1-cp310-cp310-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.10 Windows x86-64

xorbits-0.2.1-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.2.1-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.2.1-cp310-cp310-macosx_10_9_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

xorbits-0.2.1-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.2.1-cp39-cp39-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 Windows x86

xorbits-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

xorbits-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.9 macOS 10.9+ x86-64

xorbits-0.2.1-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.2.1-cp38-cp38-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 Windows x86

xorbits-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.1 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

xorbits-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.8 macOS 10.9+ x86-64

xorbits-0.2.1-cp38-cp38-macosx_10_9_universal2.whl (5.2 MB view details)

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

File details

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

File metadata

  • Download URL: xorbits-0.2.1.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.2.1.tar.gz
Algorithm Hash digest
SHA256 254e4114ab86fb8634e843f9898b99503918bf671d0072eb6b3183f674678d50
MD5 e24931b51496de2d4609e032a09d3389
BLAKE2b-256 bf53cef5cc61a8356a43a64e1e77fd2f39daea8d70bdd5b22b3cf90c033b0981

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.8 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.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a6ff790f652fdf07c51271fd893ed45388c7ce2d0b84aafae2ea51a88f05d68b
MD5 97656a6954e220814c654d67b820ea72
BLAKE2b-256 56795b4a19a89b7060d666a47fa79efe465fb86ba343ad3b0175477b43c631f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 18c73ef223c871fd9cba471fda2be2f214be59aecffb77f952e8e5452ffd0dfb
MD5 1cca1c296b28bde289fff76bb02f021f
BLAKE2b-256 f3cd57000a27d590247d179f4c9a810bf2cd0e99f6fac873bcdd2d4b31109193

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4da18fd44fcd522f5fc92b4af23b0a3d360f473ab7eea4b63c285e0d330223b8
MD5 547616e3ed862ce19540c1553f82632d
BLAKE2b-256 11ca28d25cec55eb0428f4c38a3b55614a06411f736634b96a829e5d436bb40c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 051d107ad5036b4c644a3c23310de0cadd433701c8fb18e2b1b4a9122a5dcbe1
MD5 0fb83849cbaa8bd8f3ca3f8633e690cf
BLAKE2b-256 31ef8bbdfa387c5fb99c250c0d104ced8a1b5467ad7e767db225fc408e7da92c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 09aba664e7cfd0befc511d21888428103d42f194e04b522a6a34b54deb5d4197
MD5 01a7c37297b77c7134ca7ae64e31769a
BLAKE2b-256 2367a2960c5d9a1f104f560094df41ae2e3aa40197edd34a65ba8687c368c109

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dba2299f18ca31855384a9169a968ee525499322ce60d9527688f3f2f954b07d
MD5 80e116ba5309ca7bb45c5961344173be
BLAKE2b-256 56c06d6b42146e8d423107410f1b56efd5a7a386c436cface1111773ca47d72a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6f56d7f4c52d3790d9ddc8ebef195b5378f8f42d04ea5d66469ede44e1fe429
MD5 d81c816df0582f4c2d86dec5447235d9
BLAKE2b-256 be8dc304d235b8d1b39cf8c1e0389e9a59380ee20503282d55b279e31d7c7035

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8ae4d76247ab9b6aebd594824d92f7f78b2d64c87d2d1ebad464b5b10f309317
MD5 83f6a8f45ff88da711005e4aec8381c0
BLAKE2b-256 b09c23f625b421a8937cb2209cc31c32e162cd5bd4d0558d762e41bdc23ecb0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f99dfde9bc2e4a6f8ed2c8f7e7080a15242120bc1a2df5a335479d42cd8ed07b
MD5 bbd813070f712522381d2dde0259afa4
BLAKE2b-256 442cf0e4a35a143ea1ccbd661549a4ab1b4910fe938557518fe50870f368563d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3a6d09bcabc9eb361588284debb4e24b894fd0bac366de751fd4518be8a7e027
MD5 522370a0fc410aea550fcb26ba3e6864
BLAKE2b-256 f998b6dc1af917771411595bcb8d4315377ce2c1da7652e9957681d76a0625e4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6f214406956ed04ecab58a70723eb50ee8f75742c10ec274be17a251da52029c
MD5 2ff3f1c79ce9f954e78c2ed5028457dd
BLAKE2b-256 0431c19e4e2a62eaf603a53bf077211b9af2412701795bbb608ec60efa163232

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.1-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.2.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 0320706dd9a8a836da8264532927bf7763c8b943d643237e6eddcaff0efb3188
MD5 4782cef770d5a9d2a06ce5f0869a958d
BLAKE2b-256 2d9d7d039f18b2aab37a1d219f02cccf3b979878c2b9754cab33a69f0c6c52ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6f61bb68604f48b0958c192caa4d0465db8fac7d7767c2af3c8e55308641f7b
MD5 fee4090604d9a98ef8e0ce793c7f2df7
BLAKE2b-256 1c0379b2fe281b36da2e122d975cca7b580736fcef11189fe60e1e4f79a82495

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 085ad993525e8bd933dc91f04afe278dd079a4b97cbd898e1d575bd813a009b2
MD5 2eb4697e536526aefa2977f3d3919665
BLAKE2b-256 1320d1c4496b56ffe61b593cc764863dfa1975f65757ab4375d04736d838be4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c920a29e105d838b60e8779a08f014658ba21bc0cc96d8156fb697a157e8f50a
MD5 6b8310623f047a6cdece76d55314eac9
BLAKE2b-256 325ad97ca55f72bc210792d8496b2ac6a9d6165d745fb55dfd58d9a3b791a9de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 dbac79ee59a2557c4b58e08bc9d737b2c5ea618f4d5b20271ee1bc221e34d6b1
MD5 868f5b9fac6718336c8c69f29fe9aeea
BLAKE2b-256 054ec50403338f93e1941ff6da5781886b063299be5da1e0f30d037fdd607587

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 3.9 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.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 784499a411c64d2012fd9bc5ba056ec7744ab0b60bc818044cc367ebfa69efa9
MD5 c1be495985765fbc703dadcee546b3a6
BLAKE2b-256 ceeb8fb1f71746c026a67c853675b7fd986afe270ad7fe9ba82276fe47679b5d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.1-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.2.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 1145b843e4498b9f3401a7f49f2cab28b5e8369f776720d883107933affa4654
MD5 e4869b46bf5a14bd888d71ef943c39aa
BLAKE2b-256 c68d9fb1ef058c49c052da8fd5809878d4fff758b29bf375ca6ee48fb4da273d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a753cca069bb3431ecfb9fef8c773aac072810eaaf04767215637484cfef2927
MD5 861f99eba5ec590e7f792b5824b71044
BLAKE2b-256 596f7edf006afb29c2aae17f55e7cbdc9a927c6eea997c560819063dbf42088d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bce0bafc4a7f5d4ab3ea7a551d898a1701ab38f00f755dbc498883cfa327a8f6
MD5 6205afeed92f2c156a2fdded2e8ea132
BLAKE2b-256 6a61fadcf17f7b5e97c4a368a5acb84a08c9a3c56776002892525dc00f9ae0bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ce18468ae34fd164647f169f8e325af9a6bbff8289b968f5f00e5cfc5f9bd2f7
MD5 87114b4f9e9d36f388dbb070bf7087e0
BLAKE2b-256 6b643e6f5f805d3f273abf902c56df28ac43e0279b4bf9f1193dd1b07d08228b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7abf1fcc913f29fc34b662b0be52711712002692fc79938b069154e0b5ccd0fe
MD5 b5371c23f5ea6c853cadc4a2ed417ce2
BLAKE2b-256 190dc1051235f283a45c5d3cdec96e671a8d7e7ca717dfb6de8c3f256404a729

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