EVERYTHING XIAOMI
Get listed

Shake

Shake is a free, open-source Haskell library for writing build systems as an alternative to make, Ant and Scons.

Place
#16 of 42
Score
6.3
Shake's website

What Shake is

Shake is a free, open-source Haskell library for writing build systems as an alternative to make, Ant and Scons. Build rules can discover dependencies after earlier rules run, including dependencies revealed by generated files. It supports files, file existence, environment variables, directory contents and user-defined inputs. Builds can run in parallel with multicore support and resource constraints, while unchanged results are not rebuilt when dependencies change without changing outputs. Profiling reports can show plots, tables, graphs and reasons for build activity. Shake estimates completion time and percentage complete using recorded rule times and machine-load predictions, with progress information usable in Team City. It can execute Ninja files for CMake and Meson integration and build mixed-language projects. Build systems are Haskell programs, although the manual targets readers without prior Haskell knowledge. Shake runs on Linux, macOS and Windows, is installed through Haskell Stack, and provides no default build rules.

Good

  • Dynamic dependency discovery
  • Parallel builds with resource constraints
  • Profiling reports and build explanations
  • Completion estimates and CI progress integration
  • BSD-licensed, multi-platform project

Watch out

  • Build systems must be written in Haskell
  • No default build rules are provided
  • Haskell Stack installation is required
  • Shake may not be installed by default

Who it suits

Shake is aimed at developers who write or run build systems, especially on large projects needing expressive rules, parallelism and profiling. It can support mixed-language projects and Ninja-based workflows.

Verdict

Shake offers programmable dependency handling, parallel execution, diagnostics and progress reporting for developers who want build systems as code. Its Haskell-based rules and lack of default rules require more setup than a preconfigured build tool.

Plans and prices

From Shake's own pricing page, checked 9 Oct 2001.

All about pricing
PlanPriceWhat it gives you
ShakeFreeOpen source under the BSD license · install with Haskell Stack

The facts

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

What it does

Audience
Shake is aimed at developers running and writing build systems, especially for large projects that need expressive rules, robust builds, and profiling.checked 9 Oct 2001
Build performance
Shake supports parallel builds and is designed for fast execution when nothing has changed.checked 9 Oct 2001
Completion estimates
Shake can report estimated completion time and percentage complete, and its progress information can be integrated with continuous integration systems such as Team City.checked 9 Oct 2001
Dependency types
Shake supports dependencies on files, file existence, environment variables, directory contents, and user-defined inputs.checked 9 Oct 2001
Diagnostics
Shake can generate profiling reports with plots, tables, graphs, and information about what built and why.checked 9 Oct 2001
Dynamic dependencies
Build rules can discover additional dependencies after earlier rules run, such as by examining generated files.checked 9 Oct 2001
Installation
The site’s getting-started instructions say to install Haskell Stack and then run `stack install shake`.checked 9 Oct 2001
Integrations
Shake can execute Ninja files, allowing integration with CMake and Meson.checked 9 Oct 2001
Languages
Shake build systems are Haskell programs, though the manual is designed for readers without prior Haskell knowledge.checked 9 Oct 2001
Language support
Shake can build projects in any combination of languages and is often used for C/C++, Docker, and JavaScript, HTML, and CSS projects.checked 9 Oct 2001
License
Shake is an open source project under the BSD license.checked 9 Oct 2001
Limitations
Shake build systems are written in Haskell, Shake may not be installed by default, and it provides no default build rules.checked 9 Oct 2001
Notable limitation
Shake does not provide default build rules, so users must express their build rules themselves.checked 9 Oct 2001
Performance
Shake supports multicore parallelism, resource constraints, and avoids rebuilding results when dependencies rebuild without changing.checked 9 Oct 2001
Progress estimates
Shake reports estimated completion time and percentage complete using recorded rule execution times and machine-load predictions.checked 9 Oct 2001
Purpose
Shake is a Haskell library for writing build systems as an alternative to tools such as make, Ant, and Scons.checked 9 Oct 2001
Support
Users can ask questions through the mailing list or Stack Overflow, and report bugs through GitHub issues.checked 9 Oct 2001
What it is
Shake is a Haskell library for writing build systems, designed as a replacement for make.checked 9 Oct 2001
Who it serves
Shake primarily benefits developers who run build systems and developers who write them.checked 9 Oct 2001

Where it runs

Platform details
Shake can display progress information in the title bar on Windows, Linux, and Mac; Windows 7 and 8 can also show it in the taskbar.checked 9 Oct 2001

Alternatives to Shake

All alternatives
  1. 1AWS CodeBuild logo

    AWS CodeBuild

    Free planWebAPILinuxmacOS
    7.9From $0.01 a month
  2. 2fastlane logo

    fastlane

    Free planAndroidiOSLinuxmacOS
    7.4Free plan
  3. 3Nx logo

    Nx

    Free planWebLinuxmacOSSelf-hosted
    7.2From $29 a month
  4. 4Bazel logo

    Bazel

    Free planLinuxmacOSWindows
    6.7Free plan
  5. 5FASTBuild logo

    FASTBuild

    Free planLinuxmacOSWindows
    6.6Free plan
  6. 6

    Open Build Service

    Free planWebAPILinuxSelf-hosted
    6.6Free plan