29个版本 (2个稳定版)
新版本 1.0.1 | 2024年8月15日 |
---|---|
1.0.0 | 2024年7月25日 |
0.19.4 | 2024年7月8日 |
0.19.2 | 2024年3月15日 |
0.2.0 | 2023年3月24日 |
#2562 在 开发工具
6,550 每月下载量
用于 15 个crate(通过 rattler_conda_types)
12KB
63 行
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 绑定。Python 软件包 py-rattler
可在 conda-forge 和 PyPI 上找到。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。
依赖项
~250–690KB
~17K SLoC