reflex VS reflex-platform

Compare reflex vs reflex-platform and see what are their differences.

reflex

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. (by reflex-frp)

reflex-platform

A curated package set and set of tools that let you build Haskell packages so they can run on a variety of platforms. reflex-platform is built on top of the nix package manager. (by reflex-frp)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
reflex reflex-platform
17 10
1,054 711
-0.1% 0.6%
4.4 8.3
8 days ago 3 months ago
Haskell Nix
BSD 3-clause "New" or "Revised" License BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

reflex

Posts with mentions or reviews of reflex. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-08.
  • On inheritance and why it's good Rust doesn't have it
    5 projects | /r/rust | 8 Dec 2023
    There's other people around here who would like to know your opinion about these GUI frameworks! I haven't written a GUI in Rust personally, but my favorite GUI framework is not at all OOP: https://reflex-frp.org/
  • Reflex – Web apps in pure Python
    9 projects | news.ycombinator.com | 2 Aug 2023
    Not to be confused with Reflex, allowing web apps in pure Haskell: https://reflex-frp.org/
  • Interactive animations
    11 projects | /r/haskell | 6 May 2023
    FRP solutions sound very attractive. But reflex seems to be stuck on the outdated GHCJS, and I haven't been able to get it to build. The newer JS output in GHC doesn't yet have DOM support. And even if I used one of those, figuring out how to interact with a LaTeX renderer might be tricky.
  • The Quest for the Ultimate GUI Framework
    4 projects | /r/programming | 22 Apr 2023
    I only have experience using Reflex, which I regard as the main contender for FRP UI libraries in the Haskell sphere. It's got a flashy website, but I think the documentation is a bit disorganized -- it took a long time for me to figure out how to get going with the library (you find some pieces of knowledge scattered here and there, if you look hard enough). My plan was to learn it well enough to onboard other people, but I don't think I could convince anyone who hasn't already decided that they're gonna make UIs in Haskell no matter the required effort.
  • Reflex FRP
    1 project | /r/cryptogeum | 23 Jan 2023
  • Simple GHC stack for a novice
    6 projects | /r/haskell | 17 Oct 2022
    Once someone has spent a bunch of time with Haskell and sees the value, they will find Nix if it makes sense. Maybe they'll want to play with https://reflex-frp.org, or they'll discover they want a better way to package 3rd-party dependencies, or they start using NixOS and want to nix all the things, etc. etc. Or, maybe they'll never find a use for it, and that's okay.
  • Building on iPad
    1 project | /r/haskell | 6 Oct 2022
    Reflex natively supports iOS, along with Android, desktop and web. I would recommend it for functional reactive programming in Haskell: https://reflex-frp.org
  • Functional Reactive Programming
    9 projects | news.ycombinator.com | 16 Aug 2022
  • HTML5 Ubuntu App with native component?
    1 project | /r/pinephone | 26 Mar 2022
    It's been awhile since I've tried to get into Ubuntu Touch/Linux mobile development in earnest. I'm currently working on an app using the reflex framework that I hope to eventually target Android, iOS, Desktop, and Linux Mobile.
  • Event driven programming in haskell
    1 project | /r/haskell | 22 Feb 2022
    If you're talking about the current Elm approach, I'm not sure. Otherwise, the paper I linked to notes some of the FRP libraries that existed at the time, some of which are still supported today (like reactive-banana), and otherwise I'd suggest looking at reflex, mentioned in the first post in this thread. I don't think it existed at the time the Elm paper came out.

reflex-platform

Posts with mentions or reviews of reflex-platform. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-07-15.
  • The Haskell job market has been growing steaily since 2008
    4 projects | news.ycombinator.com | 15 Jul 2023
    We used reflex-frp, so our app was a webview that worked on localhost and Android. The docs say it also works on iOS but we don't have an iPhone.

    The process was learning Functional Reactive Programming, then learning reflex-frp, then getting a contract with obsidian (creators of reflex) for one hour a week where we could ask questions.

    ( https://github.com/reflex-frp/reflex-platform )

    We had a grant requirement to create a phone client for Tahoe-LAFS, a Python application with a bunch of dependencies, including ZFEC, a forward error correction library.

    ( https://tahoe-lafs.readthedocs.io/ )

    ( https://github.com/tahoe-lafs/zfec/ )

    We needed bug for bug compatibility with the Python codebase, so I ran Tahoe on localhost and tested the Haskell client against the Python server. We used servant to build the API, since it builds both client and server side from the same description.

    ( https://hackage.haskell.org/package/servant )

  • Resurrection/modernization of an old Haskell+Haste project (boardgame Yinsh)
    8 projects | /r/haskell | 8 Feb 2023
  • reflex-platform and ghc version
    1 project | /r/reflexfrp | 9 Feb 2022
  • Exploring ideas in Haskell
    3 projects | /r/haskell | 14 Jan 2022
    The type classes do take a toll on performance, but in reflex-platform we change GHC's default flags to make the situation a lot better. It's still not ideal, but our performance winds up being OK for real applications. The most important part is that the performance scales reasonably well as the application grows. It might probably be good at some point to use backpack instead of a typeclass so that specialization can be enforced - though I'd prefer if GHC gave a way to just force specialization more effectively.
  • Any News On Haskell For Android ?
    4 projects | /r/haskell | 4 Jan 2022
    Obelisk / reflex-platform contain nix-based solutions to building Haskell code for mobile, so you might be interested in checking out how they do it (or just using them).
  • Creating a Haskell Application Using Reflex. Part 1
    3 projects | dev.to | 15 Mar 2021
    In this series of posts, we will describe how a Haskell web application can be developed using reflex-platform. reflex-platform offers reflex and reflex-dom packages. reflex package is the Haskell implementation of Functional reactive programming (FRP). reflex-dom library contains a large number of functions, classes, and types used when dealing with DOM. The packages are separated as it is possible to use the FRP approach not only for web-development. We will develop theTodo List application that allows carrying out various manipulations on the task list.
  • [JOBS] Obsidian Systems is Hiring
    5 projects | /r/haskell | 11 Mar 2021
    reflex-platform
  • Setting up Reflex with VS Code in WSL
    4 projects | /r/haskell | 8 Feb 2021
    To clarify the situation, the canonical way to develop reflex-dom projects is to start from the reflex-platform. See here: https://github.com/reflex-frp/reflex-platform/blob/develop/docs/project-development.rst
  • Nix - WSL - no C compiler provided for this platform
    2 projects | /r/haskell | 1 Feb 2021
    This might also be coming from the tests of the library (even if they can run in the browser, their tests might not). You can disabled tests using an overrides attribute in project.nix (if using reflex-stone). You can see what it should look like here : https://github.com/reflex-frp/reflex-platform/blob/develop/project/default.nix#L79. You should add this attribute at the same level where "useWarp = true;" is. This should then have lines like "diagrams = pkgs.haskell.lib.dontCheck super.diagrams;" for example if you want to disable the tests for the diagrams package.
  • Can I embed Reflex-FRP in a larger site?
    1 project | /r/haskell | 24 Jan 2021
    then you compile to js using ghcjs like this, then closure compile and gzip it to get the size way down. Then it just becomes a normal script you include wherever you need it.

What are some alternatives?

When comparing reflex and reflex-platform you can also consider the following projects:

Elm - Compiler for Elm, a functional language for reliable webapps.

obelisk - Functional reactive web and mobile applications, with batteries included.

sodium - Sodium - Functional Reactive Programming (FRP) Library for multiple languages

Yampa - Functional Reactive Programming domain-specific language for efficient hybrid systems

dunai - Classic FRP, Arrowized FRP, Reactive Programming, and Stream Programming, all via Monadic Stream Functions

vscode-ghc-simple - Simple GHC (Haskell) integration for VSCode

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.

hackcell - Apecs + SDL2 roguelike

purescript - A strongly-typed language that compiles to JavaScript

nixkell - A simple Nix-Haskell skeleton

rhine - Haskell Functional Reactive Programming framework with type-level clocks

nix - Nix, the purely functional package manager