#conda #version #packages #environment #rattler #package-management #ecosystem

rattler_conda_types

Rust 在 Conda 生态系统内常用数据类型

46 个版本 (26 个破坏性更新)

0.27.2 2024 年 8 月 15 日
0.26.3 2024 年 7 月 23 日
0.20.3 2024 年 3 月 22 日
0.14.0 2023 年 12 月 5 日
0.2.0 2023 年 3 月 24 日

#384 in 开发工具

Download history 2055/week @ 2024-04-24 1618/week @ 2024-05-01 1274/week @ 2024-05-08 1422/week @ 2024-05-15 1458/week @ 2024-05-22 978/week @ 2024-05-29 1268/week @ 2024-06-05 1111/week @ 2024-06-12 484/week @ 2024-06-19 699/week @ 2024-06-26 1480/week @ 2024-07-03 1024/week @ 2024-07-10 1604/week @ 2024-07-17 1655/week @ 2024-07-24 1952/week @ 2024-07-31 1611/week @ 2024-08-07

每月下载量 6,976
用于 14 crates

BSD-3-Clause

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

展示

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

Installing an environment

试试看!

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

  • git 的最新版本 git
  • pixi 的最新版本 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 服务器

组件

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

依赖项

~14–27MB
~382K SLoC