Skip to main content

A blazing fast library to work with the conda ecosystem

Project description

banner

Rattler: Rust crates for fast handling of conda packages

License Build Status Project Chat Pixi Badge docs main python docs main

Rattler is a library that provides common functionality used within the conda ecosystem (what is conda & conda-forge?). The goal of the library is to enable programs and other libraries to easily interact with the conda ecosystem without being dependent on Python. Its primary use case is as a library that you can use to provide conda related workflows in your own tools.

Rattler is written in Rust and tries to provide a clean API to its functionalities (see: Components). With the primary goal in mind we aim to provide bindings to different languages to make it easy to integrate Rattler in non-rust projects.

Rattler is actively used by pixi, rattler-build, and the https://prefix.dev backend.

Showcase

This repository also contains a binary (use cargo run to try) that shows some of the capabilities of the library. This is an example of installing an environment containing cowpy and all its dependencies from scratch (including Python!):

Installing an environment

Give it a try!

Before you begin, make sure you have the following prerequisites:

  • A recent version of git
  • A recent version of pixi

Follow these steps to clone, compile, and run the rattler project:

# Clone the rattler repository along with its submodules:
git clone --recursive https://github.com/conda/rattler.git
cd rattler

# Compile and execute rattler to create a JupyterLab instance:
pixi run rattler create jupyterlab

The above command will execute the rattler executable in release mode. It will download and install an environment into the .prefix folder that contains jupyterlab and all the dependencies required to run it (like python)

Run the following command to start jupyterlab:

# on windows
.\.prefix\Scripts\jupyter-lab.exe

# on linux or macOS
 ./.prefix/bin/jupyter-lab

Voila! You have a working installation of jupyterlab installed on your system! You can of course install any package you want this way. Try it!

Contributing 😍

We would love to have you contribute! See the CONTRIBUTION.md for more info. For questions, requests or a casual chat, we are very active on our discord server. You can join our discord server via this link.

Components

Rattler consists of several crates that provide different functionalities.

  • rattler_conda_types: foundational types for all datastructures used within the conda eco-system.
  • rattler_package_streaming: provides functionality to download, extract and create conda package archives.
  • rattler_repodata_gateway: downloads, reads and processes information about existing conda packages from an index.
  • rattler_shell: code to activate an existing environment and run programs in it.
  • rattler_solve: a backend agnostic library to solve the package satisfiability problem.
  • rattler_virtual_packages: a crate to detect system capabilities.
  • rattler_index: create local conda channels from local packages.
  • rattler: functionality to create complete environments from scratch using the crates above.
  • rattler-lock: a library to create and parse lockfiles for conda environments.
  • rattler-networking: common functionality for networking, like authentication, mirroring and more.
  • rattler-bin: an example of a package manager using all the crates above (see: showcase)

You can find these crates in the crates folder.

Additionally, we provide Python bindings for most of the functionalities provided by the above crates. A python package py-rattler is available on conda-forge and PyPI. Documentation for the python bindings can be found here.

What is conda & conda-forge?

The conda ecosystem provides cross-platform, binary packages that you can use with any programming language. conda is an open-source package management system and environment management system that can install and manage multiple versions of software packages and their dependencies. conda is written in Python. The aim of Rattler is to provide all functionality required to work with the conda ecosystem from Rust. Rattler is not a reimplementation of conda. conda is a package management tool. Rattler is a library to work with the conda ecosystem from different languages and applications. For example, it powers the backend of https://prefix.dev.

conda-forge is a community-driven effort to bring new and existing software into the conda ecosystem. It provides tens-of-thousands of up-to-date packages that are maintained by a community of contributors. For an overview of available packages see https://prefix.dev.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_rattler-0.14.0.tar.gz (1.9 MB view details)

Uploaded Source

Built Distributions

py_rattler-0.14.0-cp38-abi3-win_amd64.whl (11.4 MB view details)

Uploaded CPython 3.8+Windows x86-64

py_rattler-0.14.0-cp38-abi3-win32.whl (10.3 MB view details)

Uploaded CPython 3.8+Windows x86

py_rattler-0.14.0-cp38-abi3-musllinux_1_2_x86_64.whl (15.9 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

py_rattler-0.14.0-cp38-abi3-musllinux_1_2_i686.whl (18.1 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

py_rattler-0.14.0-cp38-abi3-musllinux_1_2_armv7l.whl (15.6 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

py_rattler-0.14.0-cp38-abi3-musllinux_1_2_aarch64.whl (15.5 MB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

py_rattler-0.14.0-cp38-abi3-manylinux_2_28_armv7l.whl (15.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARMv7l

py_rattler-0.14.0-cp38-abi3-manylinux_2_28_aarch64.whl (15.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ ARM64

py_rattler-0.14.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

py_rattler-0.14.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (18.7 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

py_rattler-0.14.0-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (19.6 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64

py_rattler-0.14.0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (16.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ i686

py_rattler-0.14.0-cp38-abi3-macosx_10_12_x86_64.whl (13.1 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

py_rattler-0.14.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (25.8 MB view details)

Uploaded CPython 3.8+macOS 10.12+ universal2 (ARM64, x86-64)macOS 10.12+ x86-64macOS 11.0+ ARM64

File details

Details for the file py_rattler-0.14.0.tar.gz.

File metadata

  • Download URL: py_rattler-0.14.0.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for py_rattler-0.14.0.tar.gz
Algorithm Hash digest
SHA256 5ea4379cbb81c9950f29531900449bf758f5dcea73f85a94c78e57b8299d5e07
MD5 c8ed55dc6858eccab8bb62652cec4e75
BLAKE2b-256 f3e82a6ba7eb193dd0786a94f9f601a2fa8a8311517f01ffaf774809a90321ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0.tar.gz:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: py_rattler-0.14.0-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 11.4 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1ad39151089cb1661b4885c727b8f732154d4302e3f02d243a80db9b3ae4cd38
MD5 de1f19be13160a057ea385319417e3ab
BLAKE2b-256 67a4458fa627f330071d14cc8afd97c8e9e780cf7c20f2e2a4b05b4458b1e6b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-win_amd64.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-win32.whl.

File metadata

  • Download URL: py_rattler-0.14.0-cp38-abi3-win32.whl
  • Upload date:
  • Size: 10.3 MB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 cb65ffe22a942ccb437a718105607b6d913954f6f372fe65b002278c3322f104
MD5 ac0314a91ebb5be65873a71656dd2f4d
BLAKE2b-256 a66c4e50324b433e8ffaf7983f4b15f2dd5aa1dd60556cc41988f8980a206c32

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-win32.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e894c9e9811da8e07177c7a92e049ed0d096cf7d23772554d64136f4183fdb36
MD5 fd866abf5ebd4c84e7920c5b31d08ecf
BLAKE2b-256 176ce8e711c7ab60650cc94f53ffd9f33644dde058f72d3a3b2f3ba8749447f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-musllinux_1_2_x86_64.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 1de3ff9ee79e32ee0983485d9af9f82f80f27074061b8444739e0ca9f1a00816
MD5 aa6e5c7c63a0dee9db55b6bdb202c4c1
BLAKE2b-256 d5773ad0784dbb7c04827bc6afb2e97c7f53bb4536a71a1f7f75f9af62b4617a

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-musllinux_1_2_i686.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 97645d1e8435f718e3f7dd4c77228f55dba4250b84f73ddf357612755215dfa0
MD5 487d08c972d951b932e0515e754ee0e3
BLAKE2b-256 c103434f4cbc450610ae378780044871a0fd5715aa56099fc5a652cbf5c1ad11

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-musllinux_1_2_armv7l.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 95e0157438f7b4e94e357c854c58621979a3be79f44a87182499371acd991ec4
MD5 cd425f0d97efe4bed82ab239003ad4e0
BLAKE2b-256 20fb5b9fad22138a0a3b99b74423b67e1beb00268267bcd20609808138d23ec6

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-musllinux_1_2_aarch64.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 3439fb76318301a57b22b050c7c9f2377e3978f77d92a62ee034c83fa89c7968
MD5 802acb91007324b0297c2532a1fec59c
BLAKE2b-256 c66bea47c3fdb8cd257f3a2f043497ed049c195253a50ea16f6145899c03b11b

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-manylinux_2_28_armv7l.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 349f5f6e85def78130740c851bc843ed6c294543b608228fdf76b48657204dc6
MD5 ca031ded5af830a2d70e4ee67a38ce22
BLAKE2b-256 7b6da16cf471d6d48e5bb2d8e9849b9f181489c80cb67e07a67db6ca8b7a1f4c

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-manylinux_2_28_aarch64.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a33ab058430177d788eee89d6e7ebe7071470b44ca7705b2fdb49aa5903db74
MD5 4eb6181c0a821e848bce5daa2749449e
BLAKE2b-256 e03a3c648ef50286a07a2e74ac50f448f476a1a00d01c1318230f5b2c2cfdaf7

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d25bad711b2373a0440df028495260e622b7f8cfaf768c9686834c12ccea288f
MD5 b61453b8ebcc052a7bfaa2056f5e017a
BLAKE2b-256 c05e2cb9384735fdac4ded248d0bbf9577fcf938f25295ad9fc12e3d0773f9c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 6ef357c3be06cb4b7bdf703cd39800c88afa4a151f1381f9f2408698e559181f
MD5 3052a6a24d839efbdf052706bb6179bb
BLAKE2b-256 7404239ea297fc30193c58f9959e3c105bfb49b2cd62880c95fe1b011ec3da0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 3ff8e2758b1deb138141cf297d59da49ea9d056c206a85f4eacab1fc9c715cb2
MD5 69077eebf695a3550bd252ac54d5238f
BLAKE2b-256 403ddf12578b0807d256ce15fcf66fb03ffadccdad578b9a56f53f8b46dc7b26

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e7546736181e0a80c269c7f108e358432374052484b91e681acd23e3cf6e4834
MD5 7bca479647fe61c5524e1c99dd4759e1
BLAKE2b-256 5ed5b4df9bb06434faff2670d5a88166c89ba0a68b78dfe8d710bb4155a2ccd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file py_rattler-0.14.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl.

File metadata

File hashes

Hashes for py_rattler-0.14.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 09bdbb738276a06813054bcc303764a38e5aa073a8d43e98407dc1e49398a2f6
MD5 42a6a46ac474d55372a36fd1e097847f
BLAKE2b-256 3052e76c88b5cc213c019d79f8a4c504187c44df27e74a5aab64bc8f7aef27e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.14.0-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl:

Publisher: release-python.yml on conda/rattler

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page