python-setuptools-rust
Port variant py310
Summary Setuptools Rust extension plugin (3.10)
Package version 1.3.0
Homepage https://github.com/PyO3/setuptools-rust
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants py39
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 27 APR 2022, 16:01:52 UTC
Port created 10 FEB 2021, 19:26:20 UTC
Subpackage Descriptions
single # Setuptools plugin for Rust extensions [github actions] [pypi package] [readthedocs] [![code style: black]](https://github.com/ambv/black) `setuptools-rust` is a plugin for `setuptools` to build Rust Python extensions implemented with [PyO3] or [rust-cpython]. Compile and distribute Python extensions written in Rust as easily as if they were written in C. ## Setup For a complete example, see [html-py-ever]. First, you need to create a bunch of files: ### setup.py ```python from setuptools import setup from setuptools_rust import Binding, RustExtension setup( name="hello-rust", version="1.0", rust_extensions=[RustExtension("hello_rust.hello_rust", binding=Binding.PyO3)], packages=["hello_rust"], # rust extensions are not zip safe, just like C-extensions. zip_safe=False, ) ``` For a complete reference of the options supported by the `RustExtension` class, see the [API reference]. ### pyproject.toml ```toml [build-system] requires = ["setuptools", "wheel", "setuptools-rust"] ``` ### MANIFEST.in This file is required for building source distributions ```text include Cargo.toml recursive-include src * ``` ## Usage You can use same commands as for c-extensions. For example: ``` >>> python ./setup.py develop running develop running egg_info writing hello-rust.egg-info/PKG-INFO writing top-level names to hello_rust.egg-info/top_level.txt writing dependency_links to hello_rust.egg-info/dependency_links.txt reading manifest file 'hello_rust.egg-info/SOURCES.txt' writing manifest file 'hello_rust.egg-info/SOURCES.txt' running build_ext running build_rust cargo build --manifest-path extensions/Cargo.toml --features python3 Finished debug [unoptimized + debuginfo] target(s) in 0.0 secs Creating /.../lib/python3.6/site-packages/hello_rust.egg-link (link to .) Installed hello_rust Processing dependencies for hello_rust==1.0 Finished processing dependencies for hello_rust==1.0 ``` Or you can use commands like `bdist_wheel` (after installing `wheel`). See also [the notes in the documentation about building wheels]. Cross-compiling is also supported, using one of [`crossenv`], [`cross`] or [`cargo-zigbuild`]. For examples see the `test-cross-compile` and `test-cross` and `test-zigbuild` Github actions jobs in [`ci.yml`]. By default, `develop` will create a debug build, while `install` will create a release build. ## Commands - `build` - Standard build command will also build all rust extensions. - `build_rust` - Command builds all rust extensions. - `clean` - Standard clean command executes cargo clean for all rust extensions.
Configuration Switches (platform-specific settings discarded)
PY310 ON Build using Python 3.10 PY39 OFF Build using Python 3.9
Package Dependencies by Type
Build (only) python-pip:single:py310
autoselect-python:single:standard
Build and Runtime python310:single:standard
Runtime (only) python-setuptools:single:py310
python-semantic-version:single:py310
python-typing-extensions:single:py310
Download groups
main mirror://PYPIWHL/be/19/a9356aac40b2432cd159264be98843af062877ff27422cdd7cf023828835
Distribution File Information
7ead7398d6b6fe70a7743408dc2f7257dbcb8ca9b2d7a9f8b281c09bd86f36a5 21439 setuptools_rust-1.3.0-py3-none-any.whl
Ports that require python-setuptools-rust:py310
python-cryptography:py310 Cryptographic recipes and primitives (3.10)