binaryen alternatives and similar packages
Based on the "Compiler" category.
Alternatively, view binaryen alternatives based on common mentions on social networks and blogs.
-
pi-forall
A demo implementation of a simple dependently-typed language -
husk-scheme
A full implementation of the Scheme programming language for the Haskell Platform. -
hyper-haskell-server
The strongly hyped Haskell interpreter. -
hint
Runtime Haskell interpreter [Moved to: https://github.com/haskell-hint/hint] -
bound
Combinators for manipulating locally-nameless generalized de Bruijn terms -
lambdacube-compiler
LambdaCube 3D is a Haskell-like purely functional language for GPU. Try it out: -
elm-street
:deciduous_tree: Crossing the road between Haskell and Elm -
haskell-to-elm
Generate Elm types, encoders, and decoders from Haskell types -
unbound
Replib: generic programming & Unbound: generic treatment of binders -
haskelm
Haskell to Elm translation using Template Haskell. Contains both a library and executable. -
accelerate-fft
FFT library for Haskell based on the embedded array language Accelerate -
lazyboy
An EDSL implemented in Haskell for programming the Nintendo Game Boy. -
elm-syntax
Library for generating Elm syntax from Haskell in a scope-safe way -
feldspar-compiler
This is the compiler for the Feldspar Language.
Clean code begins in your IDE with SonarLint
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of binaryen or a related project?
Popular Comparisons
README
Asterius: A Haskell to WebAssembly compiler
Asterius is a Haskell to WebAssembly compiler based on GHC. It compiles
Haskell source files or Cabal executable targets to WebAssembly+JavaScript code
which can be run in Node.js or browsers.
It features seamless JavaScript interop
(lightweight Async FFI with Promise
support) and small output code (~600KB
hello.wasm
for a Hello
World). A lot of common
Haskell packages like lens
are already supported. The project is actively
maintained by Tweag I/O.
Demos
Demos of popular Haskell apps, running in your browser:
Quickstart using the prebuilt container image
We host a prebuilt container image on Docker Hub. The image also ships ~2k prebuilt packages from a recent Stackage snapshot for convenience of testing simple programs without needing to set up a Cabal project.
To use the image, mount the working directory containing the source code as a
shared volume, then use the ahc-link
program:
[email protected]:/project$ podman run -it --rm -v $(pwd):/workspace -w /workspace terrorjack/asterius
[email protected]:/workspace#
There are a lot of link-time options available to ahc-link
, e.g. targeting
the browser platform instead of node
, adding extra GHC options or setting
runtime parameters. Check the documentation for
further details.
It's also possible to use ahc-cabal
as a drop-in replacement of cabal
to
build a Cabal project. Use ahc-dist
with --input-exe
on the output
"executable" file to generate actual WebAssembly and JavaScript artifacts. See
the diagrams
blog
post for an
example.
Check the documentation section
about the prebuilt image for more information, e.g. versioning policy, how to
use with podman
/docker
, etc.
Building and using asterius
locally
See the Building guide in the documentation for details.
Hacking on Asterius
We recommend using VSCode Remote Containers to reproduce the very same dev environment used by our core team members. See the Hacking guide in the documentation for details.
Documentation
We have documentation and blog posts:
- Fibonacci compiles end-to-end: Haskell to WebAssembly via GHC
- Haskell WebAssembly calling JavaScript and back again
- Asterius GHC WebAssembly backend reaches TodoMVC
- Haskell art in your browser with Asterius
- Edge computing with Servant on Cloudflare
Also checkout the HIW 2018 lightning talk, and the slides of an introductory talk in 2020 here.
Note that they may be slightly out-of-date as the project evolves. Whenever you find something in the docs of blog posts which doesn't reflect the status quo, it's a bug and don't hesitate to open a ticket :)
Project status & roadmap
See the roadmap section in the documentation for details.
Contributors
Asterius is maintained by Tweag I/O.
Have questions? Need help? Tweet at @tweagio.