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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.10 Windows x86-64

xorbits-0.2.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.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

xorbits-0.2.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.2.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.2.0-cp39-cp39-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 Windows x86

xorbits-0.2.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.2.0-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.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.2.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.2.0-cp38-cp38-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 Windows x86

xorbits-0.2.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.2.0-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.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.2.0-cp38-cp38-macosx_10_9_universal2.whl (5.2 MB view details)

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

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

Uploaded CPython 3.7m Windows x86-64

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

Uploaded CPython 3.7m Windows x86

xorbits-0.2.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.2.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.2.0-cp37-cp37m-macosx_10_9_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: xorbits-0.2.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.2.0.tar.gz
Algorithm Hash digest
SHA256 0eccefd4265804137f2f6f66e6c97043f20fb03c9c3104a776dc3b0b36a3fa5b
MD5 a93c8d4bcef0f2dc32f64d14ec792770
BLAKE2b-256 287096695eac02242bbb485361e4e8615f27464ca1003f5d3a57399200e4be74

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.0-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.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 34c6143b6217b322a8bf98bbdcfa981b04a7e898f9f436e9ec053a1f46043d47
MD5 c1e955a5b593eb54df3ae26c350589eb
BLAKE2b-256 e67c7390dc1f3887fba3b0f430d1f4101b137040e7bd8af4e9612ab64daf9d01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba7a0d2b0e85371c86e16d5b7c4439e53cd23a7e21576622e74488154d69988a
MD5 504bb57c6e2c71f3fa3ca8fef1143c56
BLAKE2b-256 2793f0cd9d0ee6ef2d9c7aacb61363f7d7f65f72350536ae5fb543ad204a9830

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9961e45351411ed85a8fbbae12d13976e2772beb247923a4aebae436d52217df
MD5 d3f19ba51b2f8674cc715efdad4f6a39
BLAKE2b-256 82bdb2b26a17153c8e354242a7d6c9a12536bf5b847d93ecbe67f7bc5e919125

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e03453a0dc7a806b17e7f6ce217270b10f9b16e328a8378a4521d5cb700c1b65
MD5 0dd4039fd0d22c5f8fbb414391ab5116
BLAKE2b-256 3793fc67abcd39e3e640b56ef9aa1580a340134becb0ebad9c3ac222d0f457c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e2cb92f1408801defe6abde371740ed02dfd99795519fccf0a06dd71a7216785
MD5 a098b4a0bfd6c2d9e67a94c2043b50d7
BLAKE2b-256 2ae15103baff112fc5a6cc3cbf852a5eb024779dd970614004346e462cd39db9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.0-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.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3e393d2dd77c3cf66fa6201e0ea40268b82b2d32de4d1709d70125b2b9014288
MD5 260bfd2fcc32591de0b4009cb3466e1f
BLAKE2b-256 31accbffebd63b7b4e151d399182a621f1a339513ae9cfa2d8597bbd0e007308

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.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.2.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 6f2b9df8b862fcb46f4510f4d5748de5c763a28129cbf92e81726528a24d60f1
MD5 763c78109b890993357f6df8ce66fec2
BLAKE2b-256 521b8410e8fe7b00c608a6bffc085c4f47f15fb63f2385ea4174125abaa921ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0602cafe5120dd227af12d119bbd56b54f38c50b7a9e5a91bca9de9347931eac
MD5 2b1a57e15b727ef9d40e1ee937ef17d7
BLAKE2b-256 cc1e0d392ae72fb8563b5aec04fa16f27b78e980e274490e6f8ff1bc216b1c06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ff2e279353f7de923ff52b3c253bdff0b6cf9952b3b41921561f515ba2ce0e9d
MD5 aa7c322a44d0d3d3d09e9cd035a3014e
BLAKE2b-256 281824c08e8d007d34770c4409edf74922ae628c6bc8e86addd7b50d37b906cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bfb6f68f4837d0e450409b6db38ef6360bef9dd8e25681ee5a5681d8a6d64549
MD5 ab3e79ef849859349271442c499f6639
BLAKE2b-256 ad0e876ef09d77a2aefe8031190eeb97ed56e228fd92550f255081f1fa54174a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 13baee431dce8a52c48acbf14c28ecbfc29c2d7f3a9b38894546a5c9c3c5769b
MD5 72c72523b99c756497643d42f756053a
BLAKE2b-256 24f98cbfd0971c2591acadc231f9f7a7b6adb4cb2544fc484c928ec8e66a93aa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.0-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.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 130823eda0b8278ee2ed86cd8e5414193fd23283742b3063df8240a0d3b56ef2
MD5 95777b6e42380d5ad516dc56e9f17dbd
BLAKE2b-256 a5c27d34258942bdfb440faa5b904e91d338aed8a4be89877a0f1b14ed261cb2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.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.2.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 8dd4c1567738d96ff79cc6d339e39ae125f6f2bad4519375d308fcae6e3b99c4
MD5 227d267185a8c07f3702b0965a37a50c
BLAKE2b-256 a649f97f6b7acfaff692508104c59a1739f7413d5075b5d6a7748f2241efd01c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9a7dd2452859107637c7c40aef4e7d66420a788f9c08d150b25db6adc2d39ea7
MD5 730105599da7f4d0ca38107c9df1740b
BLAKE2b-256 3bf6cfc9e6ad7b810e30458136df42a6ef64879ada9f8c0fb51fce2e91cf86ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2289c27716417363311677fa142cce362cb599e56de373daa42cdbb5b2a5b31e
MD5 870cb0184684d37d95c3652c63d6c452
BLAKE2b-256 882b9cfda5273329d029604154647fa063795449a5da1e4f7a7a77303eb8e533

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b34c0ee44ecc382d811806d1a1be4ef7f06f2e828d290c49253934226a55ac8e
MD5 f4c7313d678bdb49afb500907742de29
BLAKE2b-256 34f82024db3eb394e4bf67e99e88257ce33cbe96ffd29bdb1130ca74f0424ed5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c075e143e3153366afbf4ae3962046d27ebf61ad353f0d94132efa3363e570ed
MD5 1af7f76e17faf3827d44c9de540392f7
BLAKE2b-256 a5c7516f8d6f8b31126a1e8db86052579fbcf487f3b48cf66fc53e3c5425c36c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.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.2.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 79517e5c5419828386b6d1cf8f2e0f05b688d8dd6977dab5e9abad0d9ca7d2e6
MD5 e89971af9bcf1fd4060e2af9faa40bd9
BLAKE2b-256 d009300b427563578c30c9ab1d8a29952d918020bb26b6e566cae3f938a72e47

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xorbits-0.2.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.2.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 ff860d0b10acea585fe8f2b091e421d0c97adb12b5c4ca7b220a73380995b516
MD5 f67835eec80cfbd696891c1f018be5a1
BLAKE2b-256 beea9348928a3a0ec77d5a7cf3310f4a864aa5f53ff8d831001478d4ec6d254a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5e90327eb46f502b47cc8171ebb0f7597e0ef18b3a0400ef5faa4a65ed24e1f2
MD5 cc3ead8a6760c226d476a6b5b813a12f
BLAKE2b-256 d0771afdc91ea980ffe0d94ea74e62a04e1e8c1481d90dde00966dce7025607e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 11afe49b8c976593abc39fd4866e7713ceb49d68483710923bb68ca351fa6b0e
MD5 8b2b6d9008eb63a72e6ea776366e695b
BLAKE2b-256 30e1dde345963ab9b15fb9926098d41ad2584f17be8dc31fe4ec067836f74712

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for xorbits-0.2.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1b2abcc277f78ccb0ff964890d098a81ae557ad89f6109480aa89ff026e697de
MD5 39409aaa8f178cce0e6335bd9e847cd3
BLAKE2b-256 68bc86728974bb038e07a97fc6e532386b9b3c774c88b08cb64babf8a5c72f64

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