#conda #package-management #rattler #ecosystem #environment #language #repodata

rattler_repodata_gateway

用于与 Conda repodata 交互的 crate

50 个版本 (20 个重大更新)

0.21.8 2024 年 8 月 19 日
0.21.3 2024 年 7 月 23 日
0.19.4 2024 年 3 月 22 日
0.14.0 2023 年 12 月 5 日
0.2.0 2023 年 3 月 24 日

#919开发工具

Download history 1333/week @ 2024-04-29 1489/week @ 2024-05-06 1945/week @ 2024-05-13 821/week @ 2024-05-20 1384/week @ 2024-05-27 960/week @ 2024-06-03 1176/week @ 2024-06-10 505/week @ 2024-06-17 655/week @ 2024-06-24 677/week @ 2024-07-01 1293/week @ 2024-07-08 926/week @ 2024-07-15 2080/week @ 2024-07-22 1918/week @ 2024-07-29 1564/week @ 2024-08-05 1515/week @ 2024-08-12

7,092 每月下载量
5 crate 中使用

BSD-3-Clause

1MB
20K 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-buildhttps://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 可执行文件。它将下载并安装一个包含 jupyterlab 及其运行所需的所有依赖项(如 python)的环境到 .prefix 文件夹中

运行以下命令以启动jupyterlab:

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

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

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

贡献 😍

我们非常希望您能贡献!有关更多信息,请参阅CONTRIBUTION.md。如果您有任何问题、请求或想要闲聊,我们非常活跃在discord服务器上。您可以通过此链接加入我们的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工作于conda生态系统所需的所有功能。Rattler不是conda的重新实现。conda是一个软件包管理工具。Rattler是从不同的语言和应用程序工作于conda生态系统的库。例如,它为https://prefix.dev的后端提供动力。

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

依赖项

~27–47MB
~815K SLoC