50 个版本 (4 个稳定版)

1.0.3 2024 年 8 月 15 日
1.0.0 2024 年 7 月 25 日
0.25.3 2024 年 7 月 23 日
0.20.3 2024 年 3 月 22 日
0.2.0 2023 年 3 月 24 日

#151 in 开发工具

Download history 1387/week @ 2024-05-03 1457/week @ 2024-05-10 1368/week @ 2024-05-17 1411/week @ 2024-05-24 905/week @ 2024-05-31 1174/week @ 2024-06-07 764/week @ 2024-06-14 520/week @ 2024-06-21 655/week @ 2024-06-28 1323/week @ 2024-07-05 696/week @ 2024-07-12 1636/week @ 2024-07-19 1683/week @ 2024-07-26 1742/week @ 2024-08-02 1346/week @ 2024-08-09 1742/week @ 2024-08-16

每月 6,843 次下载
用于 4 crate

BSD-3-Clause

1MB
32K SLoC

C 16K SLoC // 0.1% comments Rust 15K SLoC // 0.0% comments SWIG 1K SLoC // 0.0% comments Shell 65 SLoC // 0.1% comments C++ 46 SLoC // 0.1% comments Perl 13 SLoC // 0.1% comments Batch 4 SLoC Bitbake 2 SLoC

banner

Rattler:用于快速处理 conda 包的 Rust crate

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 被以下项目积极使用:pixirattler-build 以及 https://prefix.dev 后端。

展示

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

Installing an environment

试试看!

在开始之前,请确保您已满足以下先决条件

按照以下步骤克隆、编译和运行 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 可执行文件。它将下载并安装一个包含 jupyterlab 及其所有依赖项(如 python)的环境到 .prefix 文件夹。

运行以下命令以启动 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 绑定。Python 软件包 py-rattler 可在 conda-forgePyPI 上找到。Python 绑定的文档可在这里找到。

什么是 conda 及 conda-forge?

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

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

依赖关系

~19–34MB
~525K SLoC