Reactive-banana is a practical library for Functional Reactive Programming (FRP), written in Haskell.
Support the project with a small donation:
See the project homepage for documentation, examples and so on.
I'm writing documentation on a call-by-need basis. So, feel free to write me an email if you want something explained that you don't understand, and I'll explain it to you!
To build and install the core library, 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.
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 ..
Prerequisites: Chris Done's ji library.
git clone git://github.com/chrisdone/ji.git
cabal install
To build the ji examples, type
cd reactive-banana-ji
cabal configure -fbuildExamples && cabal build
cd ..
The project contains several directories:
reactive-banana
- the core libraryreactive-banana-wx
- bindings to the wxHaskell GUI library, includes many examplesreactive-banana-ji
- experimental bindings to Chris Done's ji library for the web browser
The reactive-banana library actually contains two FRP implementations:
- Reactive.Banana.Model - A model implementation for testing and understanding the semantics. You are encouraged to look at the source code.
- Reactive.Banana.Internal - The efficient push-driven implementation used for production code. Contains hard to understand trade secrets. ;-)
Send me your examples, bindings, problems, suggestions, etc!
With contributions from
- Abu Alam
- Kevin Cantu
- Gregory Crosswhite
- Elliott Hird
- John Lato
- Gideon Sireling
- Henning Thielemann
- Daniel Werner