py-rattler
A blazing fast library to work with the conda ecosystem
What it is and what it does
py-rattler is a Python wrapper around Rattler, a Rust library that reimplements core conda ecosystem functionality for speed and language independence. It lets you solve package dependencies, install conda packages into environments, and run commands within those environments—all from Python code without relying on conda itself. The library is designed around async/await patterns and exposes the full power of the underlying Rust implementation.
The package targets developers who need to embed conda workflows into their own tools or applications. It has no runtime dependencies and ships as pre-compiled wheels for most platforms (x86_64, ARM, PowerPC, i686, Windows, macOS, Linux). Active maintenance and use in production systems like pixi and prefix.dev indicate maturity despite the Alpha classifier.
Use it for:
- Build tools that need to create isolated conda environments programmatically without invoking conda directly.
- Package managers or deployment systems that solve and install conda packages as part of their workflow.
- Cross-platform applications that require conda ecosystem support without Python conda as a dependency.
- Backend services (like prefix.dev) that need fast, non-blocking conda operations via async.
- Version resolution and dependency analysis for conda packages in custom applications.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
py-rattler provides Python bindings to Rust-based conda ecosystem functionality, enabling environment solving, package installation, and conda operations without depending on Python's conda implementation.
Yes, if you need to embed conda workflows into Python applications. The permissive BSD license, active maintenance, zero runtime dependencies, and broad platform support make it low-risk. The Alpha status and mandatory async pattern are minor friction; verify that async fits your architecture and that the API stability meets your needs before committing to production use.
Install
py-rattler on PyPI
pip
pip install py-rattleruv
uv add py-rattlerpoetry
poetry add py-rattlerInstalling py-rattler
Before you install
Medium install friction due to compiled wheels across many platforms (cp38-abi3 stable ABI). Active maintenance with recent releases; no runtime dependencies simplifies deployment.
License in practice
BSD-3-Clause permissive license allows commercial and proprietary use with minimal restrictions; attribution required.
Quickstart
pip install py-rattler
import asyncio
from rattler import solve, install, VirtualPackage
async def main():
solved = await solve(
channels=["conda-forge"],
specs=["python ~=3.12.0"],
virtual_packages=VirtualPackage.detect(),
)
await install(records=solved, target_prefix="./env")
asyncio.run(main())
Requires Python 3.8+; async/await pattern is mandatory for all operations.
Verify before relying
- Whether the library's performance advantage over conda-python is quantified or measured in real-world scenarios.
- Stability guarantees or API compatibility roadmap given the Alpha development status.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 66 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 776,759/month — #5,090 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: py_rattler-0.25.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl; py_rattler-0.25.0-cp38-abi3-macosx_10_12_x86_64.whl; py_rattler-0.25.0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl; py_rattler-0.25.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; py_rattler-0.25.0-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl; py_rattler-0.25.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; py_rattler-0.25.0-cp38-abi3-manylinux_2_28_aarch64.whl; py_rattler-0.25.0-cp38-abi3-manylinux_2_28_armv7l.whl; py_rattler-0.25.0-cp38-abi3-musllinux_1_2_aarch64.whl; py_rattler-0.25.0-cp38-abi3-musllinux_1_2_armv7l.whl; py_rattler-0.25.0-cp38-abi3-musllinux_1_2_i686.whl; py_rattler-0.25.0-cp38-abi3-musllinux_1_2_x86_64.whl; py_rattler-0.25.0-cp38-abi3-win32.whl; py_rattler-0.25.0-cp38-abi3-win_amd64.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
chia-rsProvides Python bindings to Rust crates for…
unclear · top 15,000 on PyPI
unidepUniDep unifies Conda and Pip dependency…
unclear · top 15,000 on PyPI
kornia-rskornia-rs provides low-level computer vision…
permissive · top 5,000 on PyPI
conda-package-handlingCreate, extract, and convert conda packages in…
permissive · top 15,000 on PyPI
vegafusionVegaFusion provides Rust-backed tools for…
permissive · top 15,000 on PyPI
regressProvides Python bindings to the Rust regress…
permissive · top 5,000 on PyPI
puccinialinInstalls Rust and Cargo into a temporary cache…
permissive · top 5,000 on PyPI
cargo-lambdacargo-lambda is a Cargo subcommand that…
permissive · top 15,000 on PyPI
rpds-pyProvides Python bindings to Rust's persistent…
permissive · top 100 on PyPI
pyproject2condaConverts Python project dependencies from…
unclear · top 15,000 on PyPI