binaryen: Haskell bindings to binaryen

[ bsd3, compiler, library ] [ Propose Tags ]

Haskell bindings to binaryen. Provides complete bindings to the C API, which can be useful for building WebAssembly toolchains in Haskell.

[Skip to Readme]


Manual Flags


Link against system-wide binaryen and don't build bundled binaryen


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,,,
Change log
Dependencies base (<5), binaryen [details]
License BSD-3-Clause
Copyright (c) 2018 Tweag I/O
Maintainer Cheng Shao <>
Category Compiler
Home page
Bug tracker
Source repo head: git clone
Uploaded by terrorjack at 2021-01-11T14:24:48Z
Distributions LTSHaskell:, NixOS:, Stackage:
Downloads 1634 total (28 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for binaryen-

[back to package description]

Haskell bindings for binaryen

Binaryen is a compiler and toolchain infrastructure library for WebAssembly, written in C++. This package defines bindings to the Binaryen C API.


Starting from, we bundle the C++ sources of binaryen with this package, so the package can be built and used as long as the C++ toolchain is present in the build environment. The system-binaryen Cabal flag defaults to False, but it can be manually enabled to link against the system-wide binaryen library and avoid building the bundled C++ library.

Haskell bindings version Bundled Binaryen version
0.0.6.* version_99

Older versions of this package links against the system-wide binaryen library, so before building the package, please check the Binaryen version and make sure it's no less than the minimum version listed below.

Haskell bindings version Minimum Binaryen version
0.0.1.* version_91
0.0.2.* version_94
0.0.3.* version_96
0.0.4.* version_97
0.0.5.* version_98

How to build

A simple stack build or cabal build command should work.

For Windows cabal users: run the build in a msys2 mingw64 shell.

nix-based build is also supported:

$ nix-shell --pure --run "cabal v2-run binaryen:test"
$ nix-shell --pure --run "cabal v2-run binaryen:test --flags=system-binaryen --extra-include-dirs=\$binaryenIncludeDir --extra-lib-dirs=\$binaryenLibDir"

Use the asterius Cachix bucket for reusing binary cache built on CI.