2 个版本
新版本 0.1.1 | 2024 年 8 月 15 日 |
---|---|
0.1.0 | 2024 年 8 月 2 日 |
#1604 在 开发工具
1,381 每月下载次数
用于 11 个crate(直接使用3个)
14KB
108 行
Rattler:快速处理 conda 包的 Rust crate
Rattler 是一个库,它提供了 conda 生态系统中常用的功能(什么是 conda 和 conda-forge?)。该库的目的是使程序和其他库能够轻松地与 conda 生态系统交互,而不依赖于 Python。其主要用途是作为一个库,您可以使用它在自己的工具中提供与 conda 相关的工作流程。
Rattler 使用 Rust 编写,并试图提供一个干净的 API 以访问其功能(见:组件)。考虑到主要目标,我们旨在提供对不同语言的绑定,以便轻松地将 Rattler 集成到非 Rust 项目中。
Rattler 被pixi、rattler-build 和 https://prefix.dev 后端积极使用。
展示
此存储库还包含一个二进制文件(使用 cargo run
尝试),它展示了库的一些功能。这是一个从头开始安装包含 cowpy
及其所有依赖项的环境的示例(包括 Python!)
试试看!
在开始之前,请确保您有以下先决条件
按照以下步骤克隆、编译和运行 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-forge 和 PyPI 上可用。Python 绑定的文档可以在这里找到。
什么是 conda & conda-forge?
conda 生态系统提供跨平台、二进制包,您可以使用任何编程语言使用这些包。 conda
是一个开源的包管理系统和环境管理系统,可以安装和管理多个版本的软件包及其依赖。 conda
是用 Python 编写的。Rattler 的目标是提供与 conda 生态系统一起工作的所有功能,从 Rust 开始。Rattler 不是一个 conda
的重实现。conda
是一个包管理工具。Rattler 是一个用于从不同语言和应用程序中与 conda 生态系统一起工作的 库。例如,它为 https://prefix.dev 的后端提供动力。
conda-forge
是一个社区驱动的项目,旨在将新的和现有的软件引入 conda 生态系统。它提供了由一群贡献者维护的 数万个最新 包。有关可用包的概述,请参阅 https://prefix.dev。
依赖
~1–14MB
~150K SLoC