Monthly Downloads: 95
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags: FRP     Reactive    
Latest version: v1.2.1.0

reactive-banana alternatives and similar packages

Based on the "reactive" category.
Alternatively, view reactive-banana alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of reactive-banana or a related project?

Add another 'reactive' Package


Build Status


What's this?

Reactive-banana is a library for Functional Reactive Programming (FRP), written in Haskell.

See the project homepage for documentation, examples and so on.


Compilation from the repository

To build and install the core library from the source repository, simply type

cd reactive-banana && cabal install && cd ..

However, to try out the GUI examples, you have to install one of the of the additional packages.

GUI examples using wxHaskell

Prerequisites: the wxHaskell package

cabal install wx

Note that you need to have a development version of the wxWidgets libraries installed before building wx. If you run into ExitFailure 1 exceptions, please follow the wxHaskell Quick Start instructions and try again.

To build the wx examples, type

cd reactive-banana-wx
cabal configure -fbuildExamples && cabal build
cd ..

Technical overview

How is the source code structured?

The project contains several directories:

  • reactive-banana — the core library
  • reactive-banana-wx — bindings to the wxHaskell GUI library, includes many examples

The reactive-banana library actually contains two FRP implementations:

  1. Reactive.Banana.Model - A model implementation for testing and understanding the semantics. You are encouraged to look at the source code.
  2. Reactive.Banana.Prim - The efficient push-driven implementation used for production code. Contains hard to understand trade secrets. ;-)


The source code is distributed under a BSD3 license. See the LICENSE files in the corresponding subdirectories.

The reactive-banana mascot [png] is licensed under a Creative Commons Attribution 4.0 International License with attribution to Heinrich Apfelmus and the reactive-banana library.


Many thanks to everyone who contributed, provided feedback or simply wrote an application using Reactive-Banana! In particular, many thanks to:

Alexander Berntsen, Oliver Charles, Samuel Gélineau, Vladimir Lopatin, Atze van der Ploeg, Mitchell Rosen, [and many others](CONTRIBUTORS).

Special thanks to Oliver Charles and Mitchell Rosen for co-maintaining this project.

*Note that all licence references and agreements mentioned in the reactive-banana README section above are relevant to that project's source code only.