跳转至

Vision#

我们创建 pixi 是因为我们希望为 conda 提供类似于 cargo/npm/yarn 的包管理体验。我们非常喜欢 conda 包管理生态系统所取得的成就,但我们认为用户体验可以有很大的提升空间。像 cargo 这样的现代包管理器向我们展示了一个优秀包管理器应有的表现。我们希望将这种体验带入 conda 生态系统。

Pixi 价值观#

我们希望让 pixi 为每个人提供出色的体验,因此我们有几个价值观希望坚守:

  1. 快速。我们希望有一个快速的包管理器,能够在几秒钟内解决环境依赖问题。
  2. 用户友好。我们希望有一个以用户友好为前提的包管理器,提供简便、可访问和直观的命令,具有 最小惊讶 的元素。
  3. 隔离环境。我们希望有可复现且易于共享的隔离环境。理想情况下,它应该能够在所有常见平台上运行。Conda 包管理系统为此提供了一个优秀的基础。
  4. 单一工具。我们希望将大多数在开发项目中常用的功能集成到 Pixi 中,因此它至少应该支持依赖管理、命令管理、构建和上传包。你不应该需要借助外部工具来完成这些操作。
  5. 有趣。使用 pixi 应该是有趣的,而不是让人沮丧,你不需要花费太多时间去思考它,它应该在大多数时候默默为你工作。

Conda#

我们正在基于 conda 包管理生态系统进行构建,这意味着我们可以利用 conda-forge 提供的大量包,适用于不同的平台。我们相信 conda 包管理生态系统为管理依赖提供了一个坚实的基础。Conda-forge 是社区维护的,并且非常欢迎贡献。它在数据科学、科学计算、机器人学以及其他领域得到了广泛应用,且具有经过验证的成功记录。

目标语言#

从本质上来说,我们是语言无关的,目标是支持任何可以通过 conda 安装的语言,包括:C++、Python、Rust、Zig 等等。
但我们确实相信 Python 生态系统可以受益于一个基于 conda 的优秀包管理器。因此,我们正在尝试为现有解决方案提供替代方案。
我们还认为,对于 C++ 项目,我们可以提供一个很好的解决方案,因为今天有很多库可以在 conda-forge 上找到。
当用于多语言项目时,Pixi 也能真正发挥其优势,例如,C++ 和 Python 混合项目,因为我们提供了一种简便的方法来构建所有内容,包括系统级别的包。