Skip to main content

rust → python made easy

Project description

carefree-pyo3

cfpyo3 is a collection of performant utilities.

Installation

carefree-pyo3 requires:

  • Python 3.12 or higher.
  • numpy < 2.x, because currently rust numpy doesn't support numpy 2.x.
pip install carefree-pyo3

carefree-pyo3 supports Python 3.8 at version 0.1.x, but it is no longer maintained.

Test

pytest

Benchmark (Rust)

cargo bench -F criterion -p cfpyo3_rs_core -- --verbose

Architecture

This project is divided into four parts - looks clumsy, but I'll introduce them and explain their necessity.

cfpyo3_rs_core

This is the Rust core of the project, and is meant to be responsible for the heavy lifting. Its necessity is almost self-explanatory.

cfpyo3_rs_bindings

This one looks redundant at first glance, as we already have cfpyo3_rs_py. Initially this member did not exist, until I find some bindings in cfpyo3_rs_py very useful, want to reuse them, and failed because:

  • It is not an rlib.
  • Even I managed to make it an rlib, it's just not good to import the whole package because cfpyo3_rs_py itself is exposing lots of APIs to Python.

Another choice is to put these useful bindings in cfpyo3_rs_core, but then GitHub CI cannot build it for whatever reason.

So at last, this member is born.

cfpyo3_rs_py

This is the 'direct' Python bindings of this project. It is just a REALLY thin wrapper around cfpyo3_rs_core and cfpyo3_rs_bindings, and is responsible for exposing the APIs to Python.

cfpyo3

This is the Python package that users will interact with. It is a relatively thin wrapper that dispatches the calls to cfpyo3_rs_py.

A typical use case is the f32 & f64 dispatch.

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

carefree_pyo3-0.2.2.tar.gz (55.9 kB view details)

Uploaded Source

Built Distributions

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

carefree_pyo3-0.2.2-cp312-abi3-win_amd64.whl (406.8 kB view details)

Uploaded CPython 3.12+Windows x86-64

carefree_pyo3-0.2.2-cp312-abi3-manylinux_2_24_aarch64.whl (543.0 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ ARM64

carefree_pyo3-0.2.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (578.4 kB view details)

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

carefree_pyo3-0.2.2-cp312-abi3-macosx_11_0_arm64.whl (493.0 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

carefree_pyo3-0.2.2-cp312-abi3-macosx_10_12_x86_64.whl (534.9 kB view details)

Uploaded CPython 3.12+macOS 10.12+ x86-64

File details

Details for the file carefree_pyo3-0.2.2.tar.gz.

File metadata

  • Download URL: carefree_pyo3-0.2.2.tar.gz
  • Upload date:
  • Size: 55.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.7

File hashes

Hashes for carefree_pyo3-0.2.2.tar.gz
Algorithm Hash digest
SHA256 2a0808fc3e9a3487007c0b163404732931d5ad608382e3d4da880706d31edeca
MD5 25a3c4c070210c8d673ab0e0d732b9ef
BLAKE2b-256 04db869a7a8cd83db1a29e52792264cd01838946cb329795e559ef9cb96427a6

See more details on using hashes here.

File details

Details for the file carefree_pyo3-0.2.2-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for carefree_pyo3-0.2.2-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 cc51b95d8725519657bfb5c1b8497c93279cc39b9048a9472edc89f1a9f431dc
MD5 4e1292e5980e9b6e47fcba3fe08127dc
BLAKE2b-256 2fdb6b8d1e3cd722e29aca15187084f6f35fcaab014a6cc6083128aaee8b3102

See more details on using hashes here.

File details

Details for the file carefree_pyo3-0.2.2-cp312-abi3-manylinux_2_24_aarch64.whl.

File metadata

File hashes

Hashes for carefree_pyo3-0.2.2-cp312-abi3-manylinux_2_24_aarch64.whl
Algorithm Hash digest
SHA256 ee6742f96a7953f934b201f68ab413f4a80499ea8c631012590a740c6d934c87
MD5 5a5d5217e0351cb86679c548058ba5b4
BLAKE2b-256 2d61c9f5aa4ff8ca1fb988e2a40a2f3f730205b02f6cb3dbdb161e9e1d135751

See more details on using hashes here.

File details

Details for the file carefree_pyo3-0.2.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for carefree_pyo3-0.2.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 710ef0e0e5b5deb95c8600abac2ac067acd1572eea558bc2621b78fef36fd5ad
MD5 3aefdc3f9791df10b8e2eda31a3bedff
BLAKE2b-256 4b68f4440bf34d8c7bc2d98b5108cc52da5b727515154dd3b7227108913fb0b8

See more details on using hashes here.

File details

Details for the file carefree_pyo3-0.2.2-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for carefree_pyo3-0.2.2-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3cdb0ddfac4b7b82ee15081e28c467e6903c74c612763899a38ac0954f72b195
MD5 41f165111b9ce511e24ee53c3965a7d4
BLAKE2b-256 5dc05d7d5585ab2fbe40f0a346de8a30d56e67119f504c9662fbb3f3509bff88

See more details on using hashes here.

File details

Details for the file carefree_pyo3-0.2.2-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for carefree_pyo3-0.2.2-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c70004b64b425550efc052e0dbfeecd215ec76b695df61a153dfec401ab8bc69
MD5 0065cb7501ef5d40dd58dbf84b428716
BLAKE2b-256 e40049a0f527fe17989f971dd0ddaa5795755df8210cd746d19538c2bd415391

See more details on using hashes here.

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