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]
Versions [RSS] [faq],,,,,,
Change log
Dependencies base (<5) [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 NixOS:, Stackage:
Downloads 792 total (38 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]


[Index] [Quick Jump]

Manual Flags


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

Automatic Flags

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


Maintainer's Corner

For package maintainers and hackage trustees


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.