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 ≥ 1.89 (rust-version du crate), édition 2024 rustup
Python ≥ 3.11 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_all.sh    # enchaîne toutes les vérifications (formatage inclus)
bash script/check_doc.sh    # ou un seul bloc : format / rust / python / examples / doc

Le chapitre Compilation et tests du book détaille les features Cargo (viz, viz-interactive, stub-gen…), la génération du stub python/pyrucast/_pyrucast/__init__.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.4.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distributions

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

pyrucast-0.4.0-cp311-abi3-win_amd64.whl (3.6 MB view details)

Uploaded CPython 3.11+Windows x86-64

pyrucast-0.4.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.4 MB view details)

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

pyrucast-0.4.0-cp311-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (7.1 MB view details)

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

File details

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

File metadata

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

File hashes

Hashes for pyrucast-0.4.0.tar.gz
Algorithm Hash digest
SHA256 b6677bca1b85699e381bc3b2ab22bdcce46fba37bfeba5a053ca1a7ac8991aca
MD5 3348310a3141e51a8e2e65feea7a51ed
BLAKE2b-256 5b480a3a0fe07eba6c6533174fa7deabceb862e010c6146af747ca1043dd8024

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrucast-0.4.0.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.4.0-cp311-abi3-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyrucast-0.4.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 09e141a67da894c96e020c9ca7c666a4af7da86fe499b081db69439e5d20d8f6
MD5 29d625f9e3927851299c2f6a37605019
BLAKE2b-256 951544148fbb2a4771d469f2fba50bedf3c2182518f52c0d0aa8c6c10af7df76

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrucast-0.4.0-cp311-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.4.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrucast-0.4.0-cp311-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 56336d23b8b85f4b1d1bb013f248b337d8f4e44b01637e74b8a47c2c160aaf6b
MD5 03f1145f8392ac30256130b9809a03ad
BLAKE2b-256 19f73bbef31c25410f9c28b15f2310444da59c9e885e7a21da725a05f1823617

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrucast-0.4.0-cp311-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.4.0-cp311-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for pyrucast-0.4.0-cp311-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 ab04c897cf6aa3ca12a36a82e920c3924eae2b24c3f53d70b80c7dc402d0465a
MD5 0bd8378bcdc9d782bdf14bf49be0b153
BLAKE2b-256 37068653660948286f502ed581afeb8bdcb359fdc8df0a77de831aaa12d85ad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyrucast-0.4.0-cp311-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

This release

0.4.0 This release

4 files

0.3.3

4 files

0.3.1

4 files

0.3.0

4 files

0.2.1

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