All Projects → HeinrichApfelmus → Reactive Banana

HeinrichApfelmus / Reactive Banana

Library for functional reactive programming in Haskell.

Programming Languages

haskell
3896 projects

Labels

Projects that are alternatives of or similar to Reactive Banana

recurrent
A library for building functional-reactive (FRP) GUIs in Clojurescript
Stars: ✭ 49 (-89.16%)
Mutual labels:  frp
anytunnel
内网穿透,内网穿透代理服务器,商用内网穿透代理系统,内网穿透平台,内网穿透多用户会员系统。
Stars: ✭ 115 (-74.56%)
Mutual labels:  frp
Yampa
Functional Reactive Programming domain-specific language embedded in Haskell, for programming efficient hybrid (mixed discrete-time and continuous-time) systems.
Stars: ✭ 294 (-34.96%)
Mutual labels:  frp
reflex-dom-ace
Reflex wrapper for the ACE editor
Stars: ✭ 12 (-97.35%)
Mutual labels:  frp
frp-doc
Documents for frp.
Stars: ✭ 30 (-93.36%)
Mutual labels:  frp
Swiftrex
Swift + Redux + (Combine|RxSwift|ReactiveSwift) -> SwiftRex
Stars: ✭ 267 (-40.93%)
Mutual labels:  frp
reflex-dom-semui
A reflex-dom API for Semantic UI components
Stars: ✭ 22 (-95.13%)
Mutual labels:  frp
Openiothub
💖A free IoT (Internet of Things) platform and private cloud. [一个免费的物联网和私有云平台,支持内网穿透]
Stars: ✭ 371 (-17.92%)
Mutual labels:  frp
callbag-rs
Rust implementation of the callbag spec for reactive/iterable programming
Stars: ✭ 25 (-94.47%)
Mutual labels:  frp
Hareactive
Purely functional reactive programming library
Stars: ✭ 293 (-35.18%)
Mutual labels:  frp
frps-nginx-https
nginx反代frps实现https的模板配置文件
Stars: ✭ 44 (-90.27%)
Mutual labels:  frp
acto
A signals library for functional reactive programming
Stars: ✭ 18 (-96.02%)
Mutual labels:  frp
Mobx Keystone
A MobX powered state management solution based on data trees with first class support for Typescript, support for snapshots, patches and much more
Stars: ✭ 284 (-37.17%)
Mutual labels:  frp
frpmgr
Windows 平台的 FRP GUI 客户端
Stars: ✭ 131 (-71.02%)
Mutual labels:  frp
Reflex Dom
Web applications without callbacks or side-effects. Reflex-DOM brings the power of functional reactive programming (FRP) to the web. Build HTML and other Document Object Model (DOM) data with a pure functional interface.
Stars: ✭ 301 (-33.41%)
Mutual labels:  frp
frp-notify
一个专注于消息通知的 frp server manager plugin 实现,让你对进入 frps 的连接了如指掌,不再裸奔。
Stars: ✭ 44 (-90.27%)
Mutual labels:  frp
Openwrt Frp
Frpc & Frps for OpenWrt
Stars: ✭ 271 (-40.04%)
Mutual labels:  frp
Outwatch
A purely functional and reactive UI framework
Stars: ✭ 376 (-16.81%)
Mutual labels:  frp
Lightning
A Swift Multiplatform Single-threaded Non-blocking Web and Networking Framework
Stars: ✭ 312 (-30.97%)
Mutual labels:  frp
Datsync
Datomic <-> DataScript syncing/replication utilities
Stars: ✭ 288 (-36.28%)
Mutual labels:  frp

Build Status

Reactive-banana

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.

Installation

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. ;-)

License

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.

Contributors

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, and many others.

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].