Scalable Python data science, in an API compatible & lightning fast way.
Project description
Xorbits: scalable Python data science, familiar & fast.
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
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
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
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
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
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. |
Staying up-to-date on new features. |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file xorbits-0.1.1.tar.gz
.
File metadata
- Download URL: xorbits-0.1.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6d9aeff787dda9ccf312e687c5027f2a6bd541e1da907aae746ec2f72f51a46 |
|
MD5 | cccf982633185d06c56b851d836aab40 |
|
BLAKE2b-256 | fdff1cf6a1bc0be33c640aada7fb8f65e20726f54f619a32b745828b996c5a99 |
File details
Details for the file xorbits-0.1.1-cp310-cp310-win_amd64.whl
.
File metadata
- Download URL: xorbits-0.1.1-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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54f91081ebf11fb8421e6d1bf92cee12ee4804949443a7b06901013f4848b81d |
|
MD5 | 123ec6a3ae2447a94e68564ba470b1b7 |
|
BLAKE2b-256 | ef3883335ece8e3f98adf871135ef676d17260c435b488a92998da606301b9cb |
File details
Details for the file xorbits-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 9.9 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19d259c1b89baf8e340b5ca964d0307d829a1918b7bd576ab9a252a44b92cf8c |
|
MD5 | b28007867bc96aa6cb8ea42b39d3a172 |
|
BLAKE2b-256 | d41f5e3e7cf90f5b7cc4c727cdbe86bcfb5344c6d87a0e05ccf016ea7cbb69b2 |
File details
Details for the file xorbits-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 9.8 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8059994b2b422e932466055ceb1635ff606b4cb5b3c315b931130f4aea3930ff |
|
MD5 | a07850872c704373568421e77cf5626c |
|
BLAKE2b-256 | f0efde3c58de99f892486bf5089ddd5822c0c566c5ff0c688449d8de43f6e11c |
File details
Details for the file xorbits-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl
- Upload date:
- Size: 4.1 MB
- Tags: CPython 3.10, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7bb9ac50fdf827a2a4925efbf70c604c7ca761c2f84788a0b6cac6fe5b2f96f3 |
|
MD5 | 8605cc9313d875f0aefaae4dfb47a1df |
|
BLAKE2b-256 | 63bb7802beaed133543d604997612279e95dcf870538a1de55e9b91a5a109752 |
File details
Details for the file xorbits-0.1.1-cp310-cp310-macosx_10_9_universal2.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp310-cp310-macosx_10_9_universal2.whl
- Upload date:
- Size: 5.2 MB
- Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f360df7b69cf6f0edba0a8873b6a02d963fd486ba54d021aac91c42cebca67c7 |
|
MD5 | 21cee804f729ca46948caeed72ee07ac |
|
BLAKE2b-256 | d5be35f878040d1fdd6d0b8caff07c6a1be73b12009a3c40a3dfaa410a045336 |
File details
Details for the file xorbits-0.1.1-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: xorbits-0.1.1-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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ff9be700105f5ad3ed0ed18164caebbd3fe753a641efa46109dc4a0442a0bfa |
|
MD5 | 3ea63b6126d67e71a407d7a258c731c8 |
|
BLAKE2b-256 | 92a36ba3ee2c2cc2802ed5f427c68fcf1c2f809414bdafbcaccc98e7b0e38048 |
File details
Details for the file xorbits-0.1.1-cp39-cp39-win32.whl
.
File metadata
- Download URL: xorbits-0.1.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a19c1c7ef22765047ba7e2113b3a2d2af2f660e8cb94da762dc8ed89b8077815 |
|
MD5 | 3c6ed71fb970d4166299c44eac03c217 |
|
BLAKE2b-256 | 4a7ef88981782db23cdc7448da6c3700f5e417bf898767f0bbf2e30ebe055cef |
File details
Details for the file xorbits-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 9.9 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e46e576ebf214cc22ff256b045e537434e340616e4d678bfaaa6bda7f1cb55ad |
|
MD5 | ee67d93851aaa4ce9ae9942cc123baa4 |
|
BLAKE2b-256 | c9d9913fffbc7a39707ce25a8051b8d4500b25fe003c859528c163e33bff8211 |
File details
Details for the file xorbits-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 9.8 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 91feb4dcfcfa299107341da3dc7bdaf1bdaf75c34155d6dc63f044cf03553208 |
|
MD5 | 736e6b220380cf22c45891df8ff3d9b6 |
|
BLAKE2b-256 | 37126b07df66fd37ec6ad757af8f8b84dc042739503d6b00924590be33a82d9e |
File details
Details for the file xorbits-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 4.1 MB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9352f45bebb4353ebfb3383670782da1de268748c0412396b993842a8bb622ba |
|
MD5 | 0317dd277603317d21b67a7bdd2760f4 |
|
BLAKE2b-256 | 3b81675b4af06c3534d6d606f655751569fdcbb8cc7a27f2d5a681ab974bec18 |
File details
Details for the file xorbits-0.1.1-cp39-cp39-macosx_10_9_universal2.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp39-cp39-macosx_10_9_universal2.whl
- Upload date:
- Size: 5.2 MB
- Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d8dfd46e4b1102884642d24a660f8f3a89404ce0acab2dbe74e2a48db959b0b |
|
MD5 | a267236fbd4412dbcb4cc13dbc4d2927 |
|
BLAKE2b-256 | 8d8a6c38ca6103b4a447d311c9b5b975b2be1083aa0e79c688c8f07198657683 |
File details
Details for the file xorbits-0.1.1-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: xorbits-0.1.1-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
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3410169b60cfaf1949a1cfe9d1c412ca36010b9b8a915ce98d5d1a7572c031d |
|
MD5 | 3a90f5545ff276737c2830a45750441f |
|
BLAKE2b-256 | 7ad04e6ba19f74642c557d7835882828f0954a8c5778e5cf1d44c73deda5e065 |
File details
Details for the file xorbits-0.1.1-cp38-cp38-win32.whl
.
File metadata
- Download URL: xorbits-0.1.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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 35ab1428b42898303c9f2591a471c765d68eba4f3c38a1a00736769fc76b94a4 |
|
MD5 | 307ebbea3f9e5102ab6f909a81d12bc5 |
|
BLAKE2b-256 | fad311cb6b46d5ce24f725ed08d9e73abfcde6e6f57842db1c3f24d2bc974e29 |
File details
Details for the file xorbits-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 10.0 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb925a0cf10590fb8d1b063386ad38095d58cc9daadcf269c776f9159356b3c0 |
|
MD5 | c002ef792f394948da965876d9fe2682 |
|
BLAKE2b-256 | 14ff467754028649724ab0ec4797cf830ae01e3aec2bfde6256840fa9940e99e |
File details
Details for the file xorbits-0.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 9.9 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3946ed3679f1c09642a9c4d9fa0e6f804a9032575b5ab7715d6dfcea0ce8e480 |
|
MD5 | 38c36235d096a187c7938162f33df5b5 |
|
BLAKE2b-256 | 04329ed38fb36759f3e8f8db1cb61345c71580fdaa35de6d28e850498f58bf68 |
File details
Details for the file xorbits-0.1.1-cp38-cp38-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp38-cp38-macosx_10_9_x86_64.whl
- Upload date:
- Size: 4.1 MB
- Tags: CPython 3.8, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 784808ca9bb34bdc1c8b70c5cca19cd086c058507e030ced6ba42beb8371adb9 |
|
MD5 | 75ba651ee8a45f5a6334959825b1f26c |
|
BLAKE2b-256 | 9a885581bee53401f46b6e949b4abadede19d8f8c4ae8ae39cf5452cc17df602 |
File details
Details for the file xorbits-0.1.1-cp38-cp38-macosx_10_9_universal2.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp38-cp38-macosx_10_9_universal2.whl
- Upload date:
- Size: 5.1 MB
- Tags: CPython 3.8, macOS 10.9+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1edba65b058d22268a07e52a19cc89e90171eec8dc7b08af2b719e24effc8dc1 |
|
MD5 | c45db9a46c8a501ece7c8b036018b598 |
|
BLAKE2b-256 | 30655ae368029ea6301574b6161caf5e057a255cd2ba1ff589b173f324affe49 |
File details
Details for the file xorbits-0.1.1-cp37-cp37m-win_amd64.whl
.
File metadata
- Download URL: xorbits-0.1.1-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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 796227472b999679aed1a12f156ea316fcc4f309db0b00fff6b8301f0c81520d |
|
MD5 | fab6be3213cfb5915bba7de9ebdb2df9 |
|
BLAKE2b-256 | 4ecd03b23c78d6dcb974ad89c4fa8f9df0647edeaa5d1a8dc1c6b7981b942acd |
File details
Details for the file xorbits-0.1.1-cp37-cp37m-win32.whl
.
File metadata
- Download URL: xorbits-0.1.1-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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65f2a0c5d16a6ddd088e4c119e1dcf81b5b25640d7563266bbd17807c98644d5 |
|
MD5 | 4d7525638e572dce33fcbe392cd9c7d6 |
|
BLAKE2b-256 | ded3b73c7b324fcc8d4d92c696b5cc31f105e00500c2b8a21cb6eea4b15f0e20 |
File details
Details for the file xorbits-0.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 9.2 MB
- Tags: CPython 3.7m, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e4257ab77d35b2e4676252ac484898ba8b4a63ecba0fd687234ca73a0e3a58d |
|
MD5 | 13416032a78454fc40a52beff3a89bff |
|
BLAKE2b-256 | af53d1000cb6f9686bb39d88edfe000303feb00e4dfd3f06eb716c8c9963edb8 |
File details
Details for the file xorbits-0.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 9.2 MB
- Tags: CPython 3.7m, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a326c0a6000c041f81ed1f94cf8f27dc5bb51c072dee9e8f3c2e8f0c825a2a2 |
|
MD5 | 9dcd3d58f354a1bd7ae80b219d429e6d |
|
BLAKE2b-256 | daa2ca04b36a15a2390aa4a61692b1f7937666c295b6872c11056127455556dc |
File details
Details for the file xorbits-0.1.1-cp37-cp37m-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: xorbits-0.1.1-cp37-cp37m-macosx_10_9_x86_64.whl
- Upload date:
- Size: 4.0 MB
- Tags: CPython 3.7m, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 392c71d8619c1f88b4d3f9664d60da8662c304db8b44f48aa558dcf4e90fa9d4 |
|
MD5 | 8522b42b434a5d64ec6f7cae12d365d9 |
|
BLAKE2b-256 | 267b667c84c1715d5d4640eaa79d70f1945dd4e60d5f7aeb1422aa5efddaab27 |