puccinialin
Install rust into a temporary directory for boostrapping a rust-based build backend
What it is and what it does
Puccinialin is a bootstrapping tool that installs Rust and Cargo into a user cache directory rather than the system environment. It solves the problem of building Rust-based Python packages on machines where Rust is not already installed, without requiring system-level modifications or manual Rust setup. The package detects the target platform by mapping Python's platform information (primarily SOABI) to a Rust target triple, then uses rustup to download and install the appropriate Rust toolchain into an isolated directory.
The package is designed to be used as a build-time dependency, either called directly from setup scripts, integrated with setuptools-rust, or used as a custom build backend that only activates when Cargo is not already present. It returns environment variables that point build tools to the cached Rust installation, allowing downstream build systems like maturin or setuptools-rust to use it transparently.
Use it for:
- Bootstrap Rust toolchain during CI/CD builds on runners without pre-installed Rust.
- Enable setuptools-rust projects to build on platforms lacking system Rust without requiring manual installation steps.
- Use as a dynamic build dependency in maturin-based projects to install Rust only when needed.
- Support cross-platform Python package builds that include Rust extensions on heterogeneous build environments.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Installs Rust and Cargo into a temporary cache directory to support Rust-based Python builds without modifying the host environment.
Yes, if you are building or packaging Python projects that depend on Rust code and need to support environments without a pre-installed Rust toolchain. The package is actively maintained, has no known vulnerabilities, and low install friction. It is most valuable in CI/CD and automated build scenarios where you cannot assume Rust is already present.
Install
puccinialin on PyPI
pip
pip install puccinialinuv
uv add puccinialinpoetry
poetry add puccinialinInstalling puccinialin
Before you install
Low friction install with four lightweight runtime dependencies. Active maintenance with recent releases; last commit 2026-07-28.
License in practice
Dual-licensed under MIT OR Apache-2.0, both permissive licenses with minimal restrictions on use or redistribution.
Quickstart
from puccinialin import setup_rust
import os
from subprocess import check_call
extra_env = setup_rust()
check_call(["cargo", "build"], env={**os.environ, **extra_env})
Requires Python 3.9 or later; Rust installation is downloaded on first use, so network access and sufficient disk space in the cache directory are needed.
Verify before relying
- Whether the package successfully handles all platform variants listed in rustup's manual installation guide beyond the primary SOABI detection method.
- Performance characteristics when used in repeated builds or CI/CD pipelines with cache reuse.
Package facts
| License | MIT OR Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — filelock, httpx, platformdirs, tqdm |
| Maintenance | actively maintained — 24 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,690,486/month — #2,529 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: puccinialin-0.1.14-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
cargo-lambdacargo-lambda is a Cargo subcommand that…
permissive · top 15,000 on PyPI
setuptools-rustsetuptools-rust is a setuptools plugin that…
permissive · top 5,000 on PyPI
soldrSoldr is a Python wrapper that downloads Rust…
permissive · top 15,000 on PyPI
pyavd-utilsProvides Rust-based utility functions for…
permissive · top 15,000 on PyPI
cmsis-pack-managerQueries and manages device information from…
permissive · top 5,000 on PyPI
maturinMaturin builds and publishes Python packages…
permissive · top 5,000 on PyPI
clvm-rsRust-based implementation of the CLVM virtual…
permissive · top 15,000 on PyPI
tempenvTemporarily override environment variables…
permissive · top 15,000 on PyPI
sccachesccache is a compiler caching wrapper that…
permissive · top 5,000 on PyPI
maturin-import-hookAutomatically rebuilds Rust components in…
permissive · top 15,000 on PyPI