Python for Cedarling#
Cedarling provides a binding for Python programs via the pyo3 library. This allows Python developers to use the cedarling crate in their code directly.
Requirements#
- Rust 1.63 or greater
- CPython 3.10 or greater
- For linux systems, installing
build-essential
using your distribution's package manager is recommended
Building#
The recommended way to include cedarling in a Python project is to compile it to a python wheel via Maturin. Follow these steps to compile the wheel:
- Install
maturin
in an isolated environment. Usingvenv
is recommendedpython -m venv venv source venv/bin/activate pip install maturin
- For linux, install
maturin[patchelf]
instead to get the necessary dependencies - Clone the jans repository and change your working directory to that location
- Navigate to
jans-cedarling/bindings/cedarling_python
- Compile the binding:
maturin build --release
-
The wheel will be available in
target/wheels/
-
If you are developing a simple project in a
venv
setup, you can runmaturin develop --release
and maturin will install the wheel into the currently activated virtual environment. After that, you may run your code directly from the command line.
Including in projects#
In case of more complicated projects with a dependency manager such as poetry, you can either install the wheel via the command line:
poetry add path/to/wheel.whl
poetry run pip install path/to/wheel.whl
pyproject.toml
:
...
[tool.poetry.dependencies]
cedarling_python = {path = "path/to/wheel.whl"}
For other dependency managers, please check their documentation on how to include static wheels in a project.
Usage#
Once the wheel is included in your project, you may use classes from the cedarling_python
module in your code, which acts as a Python wrapper around cedarling's functions. See the usage document for details.
Created: 2024-10-09