Skip to main content

pyrucast

Bibliothèque d'éléments finis en Rust, inspirée de cast3m, exposée à Python — et utilisable telle quelle en Rust pur (pyo3 est une dépendance optionnelle : un build par défaut ne tire ni pyo3 ni libpython).

  • Documentation complète : le book mdbook dans book/ (architecture, modèle mémoire, maillage, champs, physiques…) — mdbook build book pour le HTML.
  • Référence API Rust : cargo doc --no-deps --lib --open.

Prérequis

Outil Version Installation
Rust stable (édition 2021) rustup
Python ≥ 3.9 API Python uniquement — inutile en Rust pur
En-têtes Python API Python uniquementLinux : python3-dev (Debian/Ubuntu) ou python3-devel (Fedora/RHEL). Windows : inclus dans l'installateur officiel.

Usage en Rust pur (sans Python)

[dependencies]
pyrucast = { git = "…", default-features = false }   # pas de pyo3, pas de libpython
use pyrucast::atoms::ElementType;
let mesh = pyrucast::ops::mesh::triangulate_surface(&contour, ElementType::TRI3, Some(1.0))?;

cargo build / cargo test (sans feature) compilent le cœur en Rust pur — ni Python ni venv requis. L'API Python (#[pyclass]) vit derrière la feature python-api, activée automatiquement par maturin.

Compilation dans un venv (API Python)

Pour les builds avec l'API Python (maturin, ou cargo --features python-api), pyo3 localise l'interpréteur via VIRTUAL_ENV : activez toujours le venv avant cargo ou maturin, sinon la compilation échoue avec error: failed to run the Python interpreter at .... (Un cargo build pur n'a pas cette contrainte.)

Linux / macOS

python3 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip maturin
maturin develop --release

Windows (PowerShell)

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install --upgrade pip maturin
maturin develop --release

maturin develop compile le module et l'installe dans le venv. Vérification :

python -c "import pyrucast; c = pyrucast.Coords(2); print(c)"

Après toute modification du Rust, relancer simplement maturin develop --release.

Développement

pip install pytest ruff     # en plus de maturin, dans le venv
cargo build                 # cœur Rust pur (sans pyo3 ; pas besoin du venv)
cargo test                  # tests unitaires + intégration + doctests (Rust pur)
maturin develop && python -m pytest   # tests Python
cargo fmt && ruff format .  # formatage standard (Rust + Python)
bash script/check.sh        # enchaîne toutes les vérifications (formatage inclus)

Le chapitre Compilation et tests du book détaille les features Cargo (viz, viz-interactive, stub-gen…), la génération du stub pyrucast.pyi et le dépannage courant.

Licence

Distribué sous licence Mozilla Public License 2.0 (MPL-2.0).

C'est un copyleft au fichier : toute modification d'un fichier source de pyrucast doit être republiée sous MPL, mais on peut librement construire du code propriétaire au-dessus de la bibliothèque et l'y combiner. La MPL est par ailleurs compatible GPL/CeCILL (« Secondary Licenses », §3.3).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyrucast-0.2.1.tar.gz (907.3 kB view details)

Uploaded Source

Built Distributions

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

pyrucast-0.2.1-cp39-abi3-win_amd64.whl (3.3 MB view details)

Uploaded CPython 3.9+Windows x86-64

pyrucast-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.0 MB view details)

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

pyrucast-0.2.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (6.3 MB view details)

Uploaded CPython 3.9+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: pyrucast-0.2.1.tar.gz
  • Upload date:
  • Size: 907.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyrucast-0.2.1.tar.gz
Algorithm Hash digest
SHA256 aaeabcd013fc8c18aff7adad2a2c9ab1303f92c982751213830c881aff1eea54
MD5 30da634afe4172568bde227c42c2d1fd
BLAKE2b-256 c539aa4787b6d4ba7ff2fbb6118235991137111101107ae470e5a56b60b6865f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrucast-0.2.1.tar.gz:

Publisher: release.yml on Pyrucast/pyrucast

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

File details

Details for the file pyrucast-0.2.1-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: pyrucast-0.2.1-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 3.3 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pyrucast-0.2.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 519ccd7559472315126734e37e6ffdb56d8a5e9d9d79f4820211b8b71f2a4bd7
MD5 570da00302cec0b15f9b38d514b8b779
BLAKE2b-256 c0b948f16d5a469ef08d655b540d2a28e29152ec148731b3baa0ea0da6e97930

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrucast-0.2.1-cp39-abi3-win_amd64.whl:

Publisher: release.yml on Pyrucast/pyrucast

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

File details

Details for the file pyrucast-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrucast-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee42769daf2a45a238b8e31bbb2b39247585add34b69b44afb21aca690eb2b79
MD5 1514616dddc803d148f198a1d28491a4
BLAKE2b-256 a0f770b4977ac26750fc4a2e23d87ad6025ffc42a55872e4550f80a64b740768

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrucast-0.2.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on Pyrucast/pyrucast

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

File details

Details for the file pyrucast-0.2.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for pyrucast-0.2.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 bdbfe821f9efef8421782c8f53a63039286061e517c79f151439c7b15eae1264
MD5 6b681330f466675917b1a41db2f9b668
BLAKE2b-256 b8e1a93d2a344b7c3e8e11d6e3d37f097e0a5632f653274f37d2421a212c9ea0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrucast-0.2.1-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release.yml on Pyrucast/pyrucast

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

Release history Release notifications | RSS feed

0.7.0

4 files

0.6.0

4 files

0.5.1

4 files

0.5.0

4 files

0.4.1

4 files

0.4.0

4 files

0.3.3

4 files

0.3.1

4 files

0.3.0

4 files

This release

0.2.1 This release

4 files

0.2.0

4 files

0.1.4

4 files

0.1.3

4 files

0.1.2

3 files

0.1.0

3 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page