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.8.2.tar.gz (1.7 MB view details)

Uploaded Source

Built Distributions

py_rattler-0.8.2-cp38-abi3-win_arm64.whl (5.4 MB view details)

Uploaded CPython 3.8+ Windows ARM64

py_rattler-0.8.2-cp38-abi3-win_amd64.whl (6.5 MB view details)

Uploaded CPython 3.8+ Windows x86-64

py_rattler-0.8.2-cp38-abi3-win32.whl (5.8 MB view details)

Uploaded CPython 3.8+ Windows x86

py_rattler-0.8.2-cp38-abi3-musllinux_1_2_x86_64.whl (9.5 MB view details)

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

py_rattler-0.8.2-cp38-abi3-musllinux_1_2_i686.whl (10.7 MB view details)

Uploaded CPython 3.8+ musllinux: musl 1.2+ i686

py_rattler-0.8.2-cp38-abi3-musllinux_1_2_armv7l.whl (9.1 MB view details)

Uploaded CPython 3.8+ musllinux: musl 1.2+ ARMv7l

py_rattler-0.8.2-cp38-abi3-musllinux_1_2_aarch64.whl (9.3 MB view details)

Uploaded CPython 3.8+ musllinux: musl 1.2+ ARM64

py_rattler-0.8.2-cp38-abi3-manylinux_2_28_armv7l.whl (8.9 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.28+ ARMv7l

py_rattler-0.8.2-cp38-abi3-manylinux_2_28_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.28+ ARM64

py_rattler-0.8.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.3 MB view details)

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

py_rattler-0.8.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (10.6 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ppc64le

py_rattler-0.8.2-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl (11.1 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ppc64

py_rattler-0.8.2-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (9.7 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ i686

py_rattler-0.8.2-cp38-abi3-macosx_10_12_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.8+ macOS 10.12+ x86-64

py_rattler-0.8.2-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (13.9 MB view details)

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

File details

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

File metadata

  • Download URL: py_rattler-0.8.2.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for py_rattler-0.8.2.tar.gz
Algorithm Hash digest
SHA256 67d48c1745aa43b4df95c8fab0dd4ffcdd5d9e15014ac4af4994dc5ec1b887b8
MD5 482858831957845a9c6fe6f373059b50
BLAKE2b-256 39f047a3865fa784b3bf203620f6b2bc90fb5180a01b0073d8ca6febeaf85772

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

Details for the file py_rattler-0.8.2-cp38-abi3-win_arm64.whl.

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 89663a9b720bcbc842ccb07b87673639d84b0c74b05900cb483bb7c630f1e6ab
MD5 f91fcbc885a2da2453e12a20792da3b0
BLAKE2b-256 719dbd7c5b4fc0a173e8d7c8f05500bc7c4a36c22913ac3d1fac2370f535fe3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for py_rattler-0.8.2-cp38-abi3-win_arm64.whl:

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a6b189637a6e8cfce957f3d8d5ca9b1ab7a6588f50ea992581122d6b50028b39
MD5 6e2251e3810fbbd615e9cfedba9496df
BLAKE2b-256 feab929accb3d1054f1ce26b8b92281b99b2a8b217f1eb83b94464f873b407ba

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

  • Download URL: py_rattler-0.8.2-cp38-abi3-win32.whl
  • Upload date:
  • Size: 5.8 MB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 f20169dfb8551328405edc28b5ea96a2488bd9214826f74fa27de1e3d8ed3f94
MD5 7dc51a7a3b03b3ba1a3086780d368a96
BLAKE2b-256 9570bd2ddca03800c136bd52231a051939271f89e65efd5a85843e078d5999c5

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1105c531405c56ca9cab7c704b0bd0c236f1782d6ee6e40547c5fa6552e44fc7
MD5 669ee388273835d8fa3d130f425e3849
BLAKE2b-256 42ff91bbed77f94846b2e67fcb54286c53cedbe2b28921a2378965d32fb879b4

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 040c26cbc33ce24b5354e88070fcefe4092554799ac2739008750ab4cf6e6a8e
MD5 ef12ec2c01080394b057a9b998947269
BLAKE2b-256 177453070f493912aa9481cde5626417cb731667413ab11262f0522fb65314df

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 2160feddbcfb74b2f77813b40f8b3920cddd7216e8ab66458afa9e9464e36e29
MD5 82a55fe08c721725849250252068723d
BLAKE2b-256 8c0c3b910985337e464fec42ad1ee246e4fac4c75b1b35f66d1e7001ea314f39

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1b47a663d6c89db257918b136be7c602886520d2203802357a4e9078511f98b2
MD5 3cb9a0c0d148328664258283bc7f4666
BLAKE2b-256 8eb9fb77feb9bd70ffdff36292d9a965a04f38041ec0c63ae8f0e1a1417dffce

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 53d0c5136d2f55ac509a4f6ba6bd07fed615b76f35178f1bc56f86666d9e60d0
MD5 33fe87b38dee557e8f621cffdc1a779e
BLAKE2b-256 84c59bc908ba130ee250cc504bcde79539495c9477f5591c8876f2ab3ccc3161

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ddfcbb82fa833c8995059f565d13b1788f5df752fc36a264588e687b7579a1f5
MD5 50fcbe4268b83b5b3b4d94bf0851cb30
BLAKE2b-256 62d1ed32ea5c426405b0b293c589ecd4e643318abcfd8f83447fd9c5b8edc3e8

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c68ab47e8f6448a955b625886a013936c52d9c81b7d3b5dd5b8116154dbc31b
MD5 8e83b2ca4c98c6e4c58f4da35c839bc9
BLAKE2b-256 b9e91fc235d458de02aea819e6fed9fdd16fe675a8965c13ef28a288b90646c8

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7443208b270a5146a7240e0003002e0acb55e8adc5e44c37b9f66fc9e4742968
MD5 78e7c526f0256e9587aeeab2c515307d
BLAKE2b-256 204f9d39528976134b293f019ca5271883e6e4e18dba479efa30da2cc4395ff0

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 d44c16fc159691105c04df5f3bab50ce82df203f4d97cb208ed37ea4ab7d8328
MD5 2c3fec623863d5a72868b32841ea37b8
BLAKE2b-256 7d55d9acd14333fe636b19964f0897e968c826a8ef695511b2ddb9c50b23b993

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 378c9b9d09faf4f25b51abe5977b963e3506efad57b6988c622ba56b62e2f29a
MD5 4bfda85319b3237646c0d5b42c7a44a8
BLAKE2b-256 29306153bd5fc61db3e441fe40e59c043e7b2ae69d1b66d66cb0b530fa699397

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

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

File metadata

File hashes

Hashes for py_rattler-0.8.2-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5fdcb5d084cb411cb04314aa069c0c23ad837921088e702119a9e6fcce8892c4
MD5 d36692a56d3407df2418496ff68c8e4a
BLAKE2b-256 9d2e599f9e7908c786ab02e5b7ad0823d9c4f77ffb7c12002ac1eff5ccd76dd0

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

File details

Details for the file py_rattler-0.8.2-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.8.2-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl
Algorithm Hash digest
SHA256 c7eb09490199183ba59375c5d7709e349912dd1ecfbe79468a367bd62ea85eec
MD5 389d7712f8fd3ce44c678e9191a7fd74
BLAKE2b-256 12583c8df21ef486b22a8d6b51ede3ffb5ba7a2d228e37f28635bf84671a1d4b

See more details on using hashes here.

Provenance

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

Publisher: release-python.yml on conda/rattler

Attestations:

Supported by

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