登录 注册

cabal2nix

去点 Star
开发者工具数据分析与数据处理AI 模型与开发框架 cabalcabal2nixhackagehaskellnixnixpkgs
402
Stars
163
Forks
13
Watchers
99
Open Issues
NOASSERTION
许可证
Haskell
语言
2011-08-05
创建时间
2026-11-12
最近更新

项目能做什么

cabal2nix 是一款能将 Haskell 的 Cabal 构建文件自动转换为 Nix 构建指令的工具,解决了在 Nix 生态中打包 Haskell 项目时的定义编写问题。它还包含用于生成 nixpkgs 中 `haskellPackages` 包集合的 hackage2nix 等核心组件。
官方英文简介原文(中文版暂未生成):Generate Nix build instructions from a Cabal file
来源:AI 基于仓库事实生成 · 内容以仓库实际 README 为准

使用说明 查看原始 README 原仓库文档

中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# The cabal2nix monorepo

![Continous Integration](https://github.com/NixOS/cabal2nix/workflows/Haskell-CI/badge.svg)

## Components

### cabal2nix

Tool that generates Nix build instructions from a Cabal file. Also contains
hackage2nix, the tool that generates the `haskellPackages` set in nixpkgs.

### distribution-nixpkgs

Utility library implementing nixpkgs-specific tasks and concepts: Looking
up packages, `meta` sets, Nix-style integrity hashes etc.

### language-nix

Simplistic library to parse and render a subset of the Nix language.

### hackage-db

Library for working with the Hackage database created and updated
using `cabal update`.

## Development

At the top-level, a `cabal.project` and `shell.nix` are provided for working
on all packages in the repository. You can use `direnv` and (optionally)
lorri to make the environment available in your normal shell as well.

## Maintenance

The monorepo has been assembled using [josh]. You can obtain it from nixpkgs
using `nix-shell -p josh`. Below, some common tasks are documented.

### Extracting the original git history

[josh]'s history filtering capabilities are quite powerful, allowing us to
extract the original git histories of the repositories that have been vendored
in. For example, for `distribution-nixpkgs`:

```console
$ josh-filter ':/distribution-nixpkgs'
$ git checkout FILTERED_HEAD
$ ls *.cabal
distribution-nixpkgs.cabal
```

The `FILTERED_HEAD` ref has the original `HEAD` of the `distribution-nixpkgs`
`HEAD` when it was vendored as its ancestor and can thus be pushed to the
original repository.


### Vendoring components

This probably won't come up in the future, but the process that was used to
vendor the additional libraries is documented here:

```console
$ name=…
$ git fetch https://github.com/nixos/$name.git
$ josh-filter ":prefix=$name" FETCH_HEAD
$ git merge --allow-unrelated-histories FILTERED_HEAD -m "$name: subtree upstream repo"
```

Also refer to the relevant [josh
documentation](https://josh-project.github.io/josh/guide/importing.html).

[josh]: https://josh-project.github.io/josh/
阅读完整原文

项目深度分析 AI 生成

企业级 Haskell + Nix 专有 CI/CD 与缓存加速平台

产品构想基于 cabal2nix 和 Nix 架构,提供开箱即用的 Haskell 专用远程二进制缓存与自动化打包 SaaS,降低 Haskell 编译极慢的问题并无缝集成 GitHub/GitLab。
核心功能自动化从 Cabal/Stack 解析 Nix 依赖、分布式二进制 Cachix 替代方案、专用 CI 镜像与极速构建引擎、依赖漏洞自动检测报告。
目标用户生产环境采用 Haskell 且受制于长编译时间的技术团队(如金融科技、区块链公司)。
难度/周期高 · 3-6 个月 · 成本:高(持续云端编译算力、高速存储网络支出)
收费模式按团队席位与构建/存储流量收取月度/年度订阅费(SaaS)。
竞争风险现有 Cachix、Hydra、IOG's haskell.nix 等成熟解决方案竞争;受众市场极其小众,客户获取成本高。
依据 尚需验证的假设

私有 Hackage 镜像源与 Nix 自动化包打包流水线工具

产品构想为企业内部私有 Haskell 库提供自动化生成、校验与维护 Nixpkgs-style 覆盖层(overlays)的自托管服务,保证企业私有包与开源生态兼容。
核心功能私有 Hackage 仓库挂载支持、私有依赖拓扑自动转换为 nixpkgs 集合、破损构建自动预警与回滚、SBOM(软件物料清单)生成。
目标用户拥有大量私有 Haskell 代码库、对软件供应链有严格安全合规要求的企业平台工程团队。
难度/周期中等 · 2-3 个月 · 成本:低(主要为开发和测试环境成本)
收费模式提供企业本地部署 License 授权及技术支持合同(Open-core / On-premise)。
竞争风险目标企业数量极度稀少,商务谈判周期长;很多企业内部已有定制脚本,采购意愿弱。
依据 AI推测

Haskell + Nix 企业级构建链咨询与工程优化服务

产品构想针对使用 Haskell 并希望引入 Nix 实现确定性构建的企业,提供架构改造、CI 缓存加速与构建维护的专家咨询服务。
核心功能开发工作流 Nix 化(Flakes/cabal2nix 最佳实践)、CI 流水线耗时优化、依赖版本冲突诊断、定制化 nixpkgs 打包。
目标用户遭遇 Haskell 构建环境配置混乱、跨平台构建不一致或 CI 运行超时困扰的技术总监及平台工程师。
难度/周期中等 · 1 个月起 · 成本:低(时间成本为主)
收费模式按工时计费或固定项目咨询费。
竞争风险难以规模化,收入受个人/团队时间上限限制;依赖主理人在 Haskell/Nix 社区的技术影响力。
依据 已验证事实
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心

竞品与相似项目 GitHub Search 真实检索

项目中文简介Stars语言
haskell/haskell-language-server 中文介绍暂未生成
Official Haskell IDE support via the language server protoco
2,968 Haskell
haskell/cabal 中文介绍暂未生成
Official upstream development repository for Cabal and cabal
1,750 Haskell
cabal-club/cabal-desktop 中文介绍暂未生成
Desktop client for Cabal, the p2p/decentralized/local-first
915 JavaScript
SublimeHaskell/SublimeHaskell 中文介绍暂未生成
A Sublime Text 3 plugin for Haskell. Features cabal building
570 Python
cabal-club/cabal-cli 中文介绍暂未生成
Terminal client for Cabal, the p2p chat platform.
524 JavaScript
haskell/hackage-server 中文介绍暂未生成
Hackage-Server: A Haskell Package Repository
468 Haskell
以上为通过 GitHub 官方 Search API 检索的相似项目,功能差异与优劣势需进一步人工确认,配置 AI 后可生成对比分析。

项目优势与风险

技术成熟度创建于 2011-08-05,近 30 天仍在推送
社区活跃Star 402 / Fork 163 / Issue 99(数据支持,可自行核实)
许可证NOASSERTION
主要风险上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价

安装与使用

此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。