26 个版本 (2 个稳定版)
新 1.0.1 | 2024 年 8 月 15 日 |
---|---|
1.0.0 | 2024 年 7 月 25 日 |
0.19.5 | 2024 年 7 月 15 日 |
0.19.2 | 2024 年 3 月 15 日 |
0.6.0 | 2023 年 7 月 7 日 |
在 开发工具 中排名 2268
每月下载量 274
用于 rattler_solve
2MB
72K SLoC
Rattler:用于快速处理 conda 包的 Rust 库
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
可执行文件。它将下载并安装一个包含 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环境的lock文件的库。
- 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。
依赖项
~0.8–1.1MB
~22K SLoC