reflex: Higher-order Functional Reactive Programming

[ bsd3, frp, library ] [ Propose Tags ]

Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse.

Reflex is a fully-deterministic, higher-order Functional Reactive Programming interface and an engine that efficiently implements that interface.

https://reflex-frp.org


[Skip to Readme]
Versions [faq] 0.0.1, 0.1.0, 0.1.1, 0.2, 0.3, 0.3.1, 0.3.2, 0.4.0, 0.4.0.1, 0.5, 0.5.0.1, 0.6, 0.6.1, 0.6.2.1, 0.6.2.3, 0.6.2.4, 0.6.3, 0.6.4, 0.6.4.1, 0.7.0.0, 0.7.1.0, 0.7.2.0, 0.8.0.0, 0.8.1.0 (info)
Change log ChangeLog.md
Dependencies base (>=4.9 && <4.15), bifunctors (>=5.2 && <5.6), comonad (>=5.0.4 && <5.1), constraints-extras (==0.3.*), containers (==0.6.*), data-default (>=0.5 && <0.8), dependent-map (>=0.3 && <0.5), dependent-sum (>=0.6 && <0.8), exception-transformers (==0.4.*), ghcjs-base (==0.2.*), haskell-src-exts (>=1.16 && <1.24), haskell-src-meta (>=0.6 && <0.9), lens (>=4.7 && <5), MemoTrie (==0.6.*), mmorph (>=1.0 && <1.2), monad-control (>=1.0.1 && <1.1), monoidal-containers (==0.4.0.0 || ==0.6.*), mtl (>=2.1 && <2.3), patch (>=0.0.1 && <0.1), prim-uniq (>=0.1.0.1 && <0.3), primitive (>=0.5 && <0.8), profunctors (>=5.3 && <5.7), random (==1.1.*), ref-tf (==0.4.*), reflection (==2.1.*), semialign (>=1 && <1.2), semigroupoids (>=4.0 && <6), stm (>=2.4 && <2.6), syb (>=0.5 && <0.8), template-haskell (>=2.9 && <2.17), these (>=0.4 && <0.9 || >=1 && <1.2), time (>=1.4 && <1.10), transformers (>=0.5.6.0 && <0.6), unbounded-delays (>=0.1.0.0 && <0.2), witherable (==0.3.*) [details]
License BSD-3-Clause
Author Ryan Trinkle
Maintainer ryan.trinkle@gmail.com
Category FRP
Home page https://reflex-frp.org
Bug tracker https://github.com/reflex-frp/reflex/issues
Source repo head: git clone https://github.com/reflex-frp/reflex
Uploaded by abrar at 2021-04-16T09:45:08Z
Distributions NixOS:0.8.1.0
Downloads 13336 total (413 in the last 30 days)
Rating 2.75 (votes: 13) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]

Modules

[Index] [Quick Jump]

Flags

NameDescriptionDefaultType
use-reflex-optimizer

Use the GHC plugin Reflex.Optimizer on some of the modules in the package. This is still experimental.

DisabledManual
use-template-haskell

Use template haskell to generate lenses

EnabledManual
debug-trace-events

Add instrumentation that outputs the stack trace of the definition of an event whenever it is subscribed to. Warning: It is very slow!

DisabledManual
fast-weak

Use the primitive implementation of FastWeak in GHCJS; note that this requires GHCJS to be built with FastWeak and FastWeakBag present in the RTS, which is not the default

DisabledManual
debug-propagation

Enable debugging of spider internals

DisabledManual
debug-cycles

Enable debugging of event cycles

DisabledManual
split-these

Use split these/semialign packages

EnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for reflex-0.8.1.0

[back to package description]

Reflex

Haskell Hackage Hackage CI BSD3 License

Interactive programs without callbacks or side-effects. Functional Reactive Programming (FRP) uses composable events and time-varying values to describe interactive systems as pure functions. Just like other pure functional code, functional reactive code is easier to get right on the first try, maintain, and reuse.

Reflex is a fully-deterministic, higher-order Functional Reactive Programming interface and an engine that efficiently implements that interface.

Visit https://reflex-frp.org for more information, tutorials, documentation and examples.

Resources

Hacking

From the root of a Reflex Platform checkout, run ./scripts/hack-on haskell-overlays/reflex-packages/dep/reflex. This will check out the reflex source code into the haskell-overlays/reflex-packages/dep/reflex directory. You can then point that checkout at your fork, make changes, etc. Use the ./try-reflex or ./scripts/work-on scripts to start a shell in which you can test your changes.