49 个版本 (5 个稳定版)

新版本 1.0.4 2024年8月16日
1.0.0 2024年7月25日
0.19.20 2024年7月23日
0.19.4 2024年3月22日
0.2.0 2023年3月24日

#595开发工具

Download history 2078/week @ 2024-04-25 1474/week @ 2024-05-02 1307/week @ 2024-05-09 1438/week @ 2024-05-16 1241/week @ 2024-05-23 883/week @ 2024-05-30 1228/week @ 2024-06-06 769/week @ 2024-06-13 459/week @ 2024-06-20 499/week @ 2024-06-27 1308/week @ 2024-07-04 800/week @ 2024-07-11 1555/week @ 2024-07-18 1520/week @ 2024-07-25 1972/week @ 2024-08-01 1238/week @ 2024-08-08

每月下载量 6,460
3 个 包中使用

BSD-3-Clause

570KB
12K SLoC

banner

Rattler: 用于快速处理 Conda 包的 Rust 包

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

Rattler 是一个库,它提供了 Conda 生态系统(什么是 conda 和 conda-forge?)中常用的功能。该库的目标是使程序和其他库能够轻松地与 Conda 生态系统交互,而不依赖于 Python。其主要用途是一个库,您可以使用它在自己的工具中提供与 Conda 相关的工作流程。

Rattler 使用 Rust 编写,并试图为其功能提供干净的 API(见:组件)。考虑到主要目标,我们旨在提供对不同语言的绑定,以使 Rattler 能够轻松集成到非 Rust 项目中。

Rattler 被pixi、rattler-build 和 https://prefix.dev 后端等积极使用。

展示

此存储库还包含一个二进制文件(使用 cargo run 尝试)以展示库的一些功能。这是一个从头开始安装包含 cowpy 及其所有依赖项的环境的示例(包括 Python!)

Installing an environment

试试看!

在开始之前,请确保您具备以下先决条件

  • 最新版本的 git
  • 最新版本的 pixi

按照以下步骤克隆、编译和运行 rattler 项目

# 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

上述命令将以发布模式执行 rattler 可执行文件。它将在 .prefix 文件夹中下载并安装一个环境,该环境包含 jupyterlab 以及运行它所需的全部依赖(如 python)。

运行以下命令以启动 jupyterlab

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

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

恭喜!您已经在系统上安装了一个可工作的 jupyterlab!当然,您可以通过这种方式安装任何您想要的软件包。试试吧!

贡献 😍

我们非常欢迎您的贡献!有关更多信息,请参阅 CONTRIBUTION.md。有关问题、请求或轻松聊天,我们在 discord 服务器上非常活跃。您可以通过此链接加入我们的 discord 服务器。

组件

Rattler 由几个提供不同功能的 crate 组成。

  • rattler_conda_types:conda 生态系统中所有数据结构的基础类型。
  • rattler_package_streaming:提供下载、解压缩和创建 conda 包存档的功能。
  • rattler_repodata_gateway:从索引中下载、读取和处理现有 conda 包的信息。
  • rattler_shell:激活现有环境并在其中运行程序的相关代码。
  • rattler_solve:一个后端无关的库,用于解决包满足性问题。
  • rattler_virtual_packages:一个 crate,用于检测系统能力。
  • rattler_index:从本地包创建本地 conda 通道。
  • rattler:使用上述 crate 从零开始创建完整环境的功能。
  • rattler-lock:用于创建和解析 conda 环境锁文件的库。
  • rattler-networking:网络功能,如身份验证、镜像等。
  • rattler-bin:使用上述 crate 的包管理器的示例(参见:展示

您可以在 crates 文件夹中找到这些 crate。

此外,我们为上述 crate 中提供的几乎所有功能提供了 Python 绑定。一个名为 py-rattler 的 Python 软件包在 conda-forgePyPI 上可用。Python 绑定的文档可以在 此处 找到。

什么是 conda & conda-forge?

conda 生态系统提供了跨平台、二进制软件包,您可以使用任何编程语言来使用这些软件包。 conda 是一个开源的包管理系统和环境管理系统,可以安装和管理多个软件包及其依赖项的多个版本。 conda 用 Python 编写。Rattler 的目标是提供从 Rust 工作所需的全部功能。Rattler 不是 conda 的重新实现。 conda 是一个包管理工具。Rattler 是一个 ,用于从不同的语言和应用程序中与 conda 生态系统一起工作。例如,它为 https://prefix.dev 的后端提供动力。

conda-forge 是一个社区驱动的努力,旨在将新的和现有的软件带入 conda 生态系统。它提供由社区贡献者维护的 数万个最新 软件包。有关可用的软件包概述,请参阅 https://prefix.dev

依赖关系

~14–25MB
~393K SLoC