cabal2nix
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  ## 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 为准(涉及依赖安装与环境配置,对新手门槛较高)。