skillfed

puccinialin

Install rust into a temporary directory for boostrapping a rust-based build backend

puccinialin v0.1.14 3.7M downloads/30d#2,529 on PyPI9
Permissive license MIT OR Apache-2.0 Active released

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 puccinialin

uv

uv add puccinialin

poetry

poetry add puccinialin

Installing 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

rust installer for python buildsbootstrap rust toolchaintemporary rust installationcargo setup for build backendsrust platform detection
rust-integrationbuild-bootstrap

More Build Tools packages