rhine: Functional Reactive Programming with type-level clocks

[ bsd3, frp, library ] [ Propose Tags ] [ Report a vulnerability ]

Rhine is a library for synchronous and asynchronous Functional Reactive Programming (FRP). It separates the aspects of clocking, scheduling and resampling from each other, and ensures clock-safety on the type level. Signal processing units can be annotated by clocks, which hold the information when data will be input, processed and output. Different components of the signal network will become active at different times, or work at different rates. To schedule the components and allow them to communicate, several standard scheduling and resampling solutions are implemented. Own schedules and resampling buffers can be implemented in a reusable fashion. A (synchronous) program outputting "Hello World!" every tenth of a second looks like this: flow $ constMCl (putStrLn "Hello World!") @@ (waitClock :: Millisecond 100)


[Skip to Readme]

Flags

Manual Flags

NameDescriptionDefault
dev

Enable warnings as errors. Active on ci.

Disabled
core

Dump GHC core files for debugging.

Disabled

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

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0.0, 0.1.1.0, 0.2.0.0, 0.3.0.0, 0.4.0.0, 0.4.0.1, 0.4.0.2, 0.4.0.3, 0.4.0.4, 0.5.0.0, 0.5.0.1, 0.5.1.0, 0.5.1.1, 0.6.0, 0.7.0, 0.7.1, 0.8.0.0, 0.8.0.1, 0.8.1, 0.8.1.1, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.4.0.1, 1.5
Change log ChangeLog.md
Dependencies automaton (>=1.5 && <1.6), base (>=4.16 && <4.21), containers (>=0.5), deepseq (>=1.4), foldable1-classes-compat (>=0.1 && <0.2), free (>=5.1), mmorph (>=1.2 && <1.3), monad-schedule (>=0.2 && <0.3), MonadRandom (>=0.5), mtl (>=2.2 && <2.4), profunctors (>=5.6 && <5.7), random (>=1.1), selective (>=0.7 && <0.8), simple-affine-space (>=0.2 && <0.3), sop-core (>=0.5 && <0.6), text (>=1.2 && <2.2), time (>=1.8), time-domain (>=0.1.0.2 && <0.2), transformers (>=0.5), vector-sized (>=1.4) [details]
Tested with ghc ==9.2.8, ghc ==9.4.7, ghc ==9.6.4, ghc ==9.8.2, ghc ==9.10.1
License BSD-3-Clause
Author Manuel Bärenz
Maintainer maths@manuelbaerenz.de
Category FRP
Source repo head: git clone https://github.com/turion/rhine.git
this: git clone https://github.com/turion/rhine.git(tag v1.5)
Uploaded by turion at 2024-11-12T19:29:44Z
Distributions NixOS:1.4.0.1, Stackage:1.5
Reverse Dependencies 3 direct, 0 indirect [details]
Downloads 8715 total (131 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-11-12 [all 1 reports]

Readme for rhine-1.5

[back to package description]

README


This is the main library. For details, visit [https://github.com/turion/rhine](https://github.com/turion/rhine).