EVERYTHING XIAOMI
Get listed

Cabal

Cabal is a free system for building and packaging Haskell libraries and programs.

Place
#17 of 93
Score
7.3
Cabal's website

What Cabal is

Cabal is a free system for building and packaging Haskell libraries and programs. Its command-line tool installs packages with their dependencies, using Hackage by default while also supporting other suitable archives, local directories, archives, and tarballs. Cabal can configure and build local packages, generate documentation, run test suites and benchmarks, and execute single-file Haskell scripts with cabal run. A package combines Haskell software, metadata in a .cabal file, and a standard Setup.hs build interface. The system supports dependency resolution, lockfiles, workspaces, and offline installation. Users can select an installation location and Haskell implementation, and choose optimized or profiling-enabled builds. Cabal’s built-in build system is optional, allowing custom systems. Packages are source-based and typically portable, though portability is not guaranteed. Supported platforms are Linux, macOS, FreeBSD, and Windows. Formats include .cabal files, .tar.gz sources, RPM, Debian packages, and Windows installers.

Good

  • Free plan
  • Automatic dependency installation
  • Lockfile and workspace support
  • Offline installation
  • Runs tests and benchmarks

Watch out

  • Portability is not guaranteed
  • Future-proof interface stability is not promised
  • Requires Haskell package and build workflows

Who it suits

Cabal suits Haskell developers who need package installation, dependency handling, project builds, tests, documentation, or benchmarks. It supports cross-platform workflows and custom build systems.

Verdict

Cabal provides package management and build tooling for Haskell projects across major desktop platforms. Its archive support, configurable builds, and offline features cover both routine package use and customized project setups.

Plans and prices

From Cabal's own pricing page, checked 8 Oct 2026.

All about pricing
PlanPriceWhat it gives you
CabalFreeNo pricing or usage limits stated

The facts

Each one read from Cabal's own pages, with the date it was checked.

What it does

Build workflow
Cabal supports configuring and building local packages, as well as generating documentation and running test suites and benchmarks.checked 8 Oct 2026
Configuration
Users can choose where packages are installed, which Haskell implementation to use, and whether to build optimized or profiling-enabled code.checked 8 Oct 2026
Custom build systems
Cabal's built-in build system for simple packages is optional, and custom build systems can be used.checked 8 Oct 2026
Customization
Users can choose where to install a package, which Haskell implementation to use, and whether to build optimized or profiling-enabled code.checked 8 Oct 2026
Dependency resolution
Yeschecked 21 Sep 2026
Distribution
Cabal packages use compressed .tar.gz tarballs and the package format can be translated into native formats such as RPM or deb.checked 8 Oct 2026
Downloads
The download page recommends ghcup and also links to manually downloadable binaries for many architectures.checked 8 Oct 2026
Installation
The Cabal download page recommends obtaining Cabal through ghcup and provides links to manually downloaded binaries for many architectures.checked 8 Oct 2026
Interface stability
Cabal says it cannot promise complete future-proof stability while development continues, though its package file format is backward compatible and mostly forward compatible.checked 8 Oct 2026
Lockfile support
Yeschecked 21 Sep 2026
Offline installation
Yeschecked 21 Sep 2026
Package archive
Cabal uses Hackage by default to install packages from Haskell’s central package archive, and can use other suitable archives.checked 8 Oct 2026
Package archives
Cabal uses Hackage by default to install packages and can also work with other suitable package archives.checked 8 Oct 2026
Package format
Cabal packages contain Haskell software, machine-readable metadata in a .cabal file, and a standard build interface in Setup.hs.checked 8 Oct 2026
Package formats
.cabal files; .tar.gz source distributions; RPM; Debian packages; Windows installerschecked 21 Sep 2026
Package management
The cabal command-line tool can install packages and automatically install their dependencies.checked 8 Oct 2026
Package sources
Cabal can install packages from local directories, package archives, and local or remote tarball files.checked 8 Oct 2026
Portability
Cabal packages are source-based and typically, though not necessarily, portable across platforms and Haskell implementations.checked 8 Oct 2026
Project setup
The cabal init command creates the files needed for a Cabal package, including executable, library, or test suite projects.checked 8 Oct 2026
Purpose
Cabal is a system for building and packaging Haskell libraries and programs.checked 8 Oct 2026
Security
The official Cabal pages opened here do not state a security certification or compliance standard.checked 8 Oct 2026

The company

Company details
The Cabal overview and download pages do not state a maker headquarters or founding date.checked 8 Oct 2026

Money

Free plan
Yeschecked 21 Sep 2026

Where it runs

Platforms
The recommended ghcup installation method supports Linux, macOS, FreeBSD, and Windows.checked 8 Oct 2026

Alternatives to Cabal

All alternatives
  1. 1

    npm

    Free planLinuxmacOSWindows
    8.3From $7 a month
  2. 2uv logo

    uv

    Free planLinuxmacOSWindows
    7.6Free plan
  3. 3

    Pixi

    Free planLinuxmacOSWindows
    7.6From €42 a month
  4. 4

    vcpkg

    Free planAndroidiOSLinuxmacOS
    7.6Free plan
  5. 5Cargo logo

    Cargo

    Free planLinuxmacOSWindows
    7.5Free plan
  6. 6

    pip

    Free planLinuxmacOSWindows
    7.5Free plan