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 [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:
Downloads 494 total (20 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]



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

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.