Skip to main content

Run Rusts itertools and more in Python.

Project description

rust_itertools

Experimental repo to run Rusts itertools in Python.

Setup

Initially, this will be mostly used as a proof of concept. This is to investigate the comparisons between:

  • rust's itertools functionality vs python's itertools functionality
  • rust's itertools functionality vs more_itertools functionality
  • new rust functions vs more_itertools functionality
  • new rust functions vs new python functions around itertools

Practically, this means not all functionality from rust's itertools will be available

Notes on reasons to use this repository

Often, the major goal of porting Rust functionality over to Python is for speed. So far, my initial experimentation has shown that that gain is very low (or even non-existant) due to 2 main reasons:

  • itertools is mostly written in C so already quite fast and roughly on par with Rust
  • even for more_itertools and new python functions: not having to copy over the results back to Python is a major gain vs the rust implementations for the type of functions we deal with here. Example: there are over 36 million permutations of the numbers 0 to 9 (incl 9). Generating in Rust and then accessing from Python takes 2.24 seconds on my pc, where the CPython itertools takes 0.557 seconds to do the same.

There are some exceptions though, especially for:

  • newly written Python code that is not in CPython (both more_itertools and additional functions in this repo)
  • situations where the Rust compiler can work wonders in reducing logic down to more direct logic
  • some tools for which the ratio of compute vs iteration is not as much towards iteration

Next to this, you can use this repository for functionality not available in Python's itertools or if you prefer the way the Rust version is setup.

Acknowledgements

The Github Actions setup to automatically crossbuild Python packages across operating systems has been based on the setup in the rtoml project (although first using the old setuptools based setup, because of the link on the setuptools-rust page..).

Of course, also credit to the Rust itertools project and inspiration from the more-itertools and of course the core Python itertools projects.

Some big ideal TODO's

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

rust_itertools-0.0.1.tar.gz (29.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rust_itertools-0.0.1-cp310-abi3-win_arm64.whl (117.8 kB view details)

Uploaded CPython 3.10+Windows ARM64

rust_itertools-0.0.1-cp310-abi3-win_amd64.whl (121.5 kB view details)

Uploaded CPython 3.10+Windows x86-64

rust_itertools-0.0.1-cp310-abi3-win32.whl (114.7 kB view details)

Uploaded CPython 3.10+Windows x86

rust_itertools-0.0.1-cp310-abi3-musllinux_1_1_x86_64.whl (425.1 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.1+ x86-64

rust_itertools-0.0.1-cp310-abi3-musllinux_1_1_aarch64.whl (430.7 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.1+ ARM64

rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (254.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (294.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (294.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (258.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (252.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

rust_itertools-0.0.1-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl (271.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.5+ i686

rust_itertools-0.0.1-cp310-abi3-macosx_11_0_arm64.whl (218.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

rust_itertools-0.0.1-cp310-abi3-macosx_10_12_x86_64.whl (223.4 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file rust_itertools-0.0.1.tar.gz.

File metadata

  • Download URL: rust_itertools-0.0.1.tar.gz
  • Upload date:
  • Size: 29.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for rust_itertools-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b22ae2f1b35c376977209903237d946ee662c0ed206ab555cc6aa2c5f4f3283c
MD5 296ac2f6bcc13dcd0c9f3f508aaa1eff
BLAKE2b-256 f09b88c96101dc3f5786d83fac4422dcecd35e5d6996b43a9776b6acc067ccaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1.tar.gz:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-win_arm64.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 3ce8a6d93eff6b8484aa4a5e7449fe62594bec6ff3fa6bc7af0b5bcbf3f43ada
MD5 8e12ea109500741845f31b562a38a655
BLAKE2b-256 8fc8e55d4a98a86fe63dd1ee1600ad881ccfa01f56a247f6477693af43784121

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-win_arm64.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 40de4680917a141e0aea1a687f6b69fcb7e4a812db211a19064a3b0a84e31971
MD5 f10bf7041f55580039b14df72a8b2f84
BLAKE2b-256 8999a3c048362d8dc96c8c3eeb10f5c92eeb8b17a0ecabf9f393827502b8b70e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-win_amd64.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-win32.whl.

File metadata

  • Download URL: rust_itertools-0.0.1-cp310-abi3-win32.whl
  • Upload date:
  • Size: 114.7 kB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 be9266373253bd03c228e480859ceb56829e1f41f3955f0e115f324cb2d3e352
MD5 31a4f62f6f1a1c2f6ce198a8b3430b0c
BLAKE2b-256 734324d45af37ea90c8cada733d1fe69c72d9abd3d983529f0b8c3a10205d11f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-win32.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0bfbf623b1fce6e351af9ba86a4e323131e0354d68afef06307adcffe33c7601
MD5 193111f175d315863e8448900b962fd7
BLAKE2b-256 6386cc9a9005329c40c237a11cb12a924b7ff00dc1ab98d9d040245a4514829d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-musllinux_1_1_x86_64.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6cb3ad03705e3621a503c543800735c4d26742acb6a8a6a08f9b0eb974dc8e2f
MD5 a3647d0fda7dc1f0d1805f92e8a61376
BLAKE2b-256 ac6403f37fce0284654d95ff97493867934af71c2e586d06045663260b2eb887

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-musllinux_1_1_aarch64.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 152ebce6fb9d6637b0547eb0d762daa4f01f23604e8c0e709cc29948012c000f
MD5 ddc25d1d0dcf9602180589609e3fef88
BLAKE2b-256 1529858ea49f478e1cbae0a1a75c343cbc3e6e5a037e30312068c3d3d2e26718

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 7cf783efa05ac526e18f647e337ad096e47443c496b3a18c93ec42b3382d41aa
MD5 48178171c250019941c7c2ff90a11f4f
BLAKE2b-256 d7db82e48b1b369caf365f0c29436c6dd47f763edbe956a652401fd994fd3a30

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0ec95e7430c378b89a421bbe676790d9c4d9580c1dfc16b93f2c1ab26bc8d088
MD5 5cbabe137a258f29cae649debb90a78e
BLAKE2b-256 8e5fcb1344fbda13f061ba0922cb829ec7859cac585ba2e80edcfac8fd8a669f

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5b0f5e4655ecfb1109b09e9088f8b8b959e06e73022c61d82d789a1ca483affe
MD5 41bb2cf90789027c41cb2c718d6c030d
BLAKE2b-256 1f76d116abeafff3ce7c66651b8feff44e42f6087492ae59518de39d7e0655c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b2318e954e8df3a8019d1a70240f2d5ce9236fbe1d2ed4655c58ce4513c1ed3c
MD5 6fbc6de971e05e95b5135cddc51ec0cf
BLAKE2b-256 1a08a92652051d23c4bc3e0a5607984f9a5bff61c74ece4d693260fcae245586

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 9d6d4e4c540c92ff94537485969b8c3e866dfd245bb07ce27cf7756687024e11
MD5 c199d46e58f6ae101b13ba3b39c974bc
BLAKE2b-256 611e283e03eae85ad6a01126aed1e32096a85f98eb2bbfcbe070d7bf8e511a87

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 603c8cfcca90ab9471a93d9b797ef45d7f863c4a96939d5d02ba80ac24d65f36
MD5 05c86f40c766e8927a1a963135774f66
BLAKE2b-256 cb3907894d3896af38fa8ede30202d27ef884f9d19da8fa0523aae38da2e78e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rust_itertools-0.0.1-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rust_itertools-0.0.1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b4dba67675754464e607efd7c083bee72d776beb5da849a615b7e5e82142e980
MD5 2fe8665b97048a4d2838387fdcc41ca5
BLAKE2b-256 02bc92623136679cff94f8497c7fca192fdd13667f9c76ba8e176d33e3c3035b

See more details on using hashes here.

Provenance

The following attestation bundles were made for rust_itertools-0.0.1-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: ci.yml on debruijn/rust_itertools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page