Functional reactive programming for JavaScript and CoffeeScript.


Fairmont is a JavaScript library for functional reactive programming. Fairmont takes full advantage of ES6+ features like iterators (including async iterators), generators, and promises. Inspired by libraries like Underscore and many others, Fairmont features include:

  • reactive programming support through async iterators
  • lazy evaluation on collection operations via iterators
  • core functional operations, like currying and composition
  • bridge functions for integrating with OOP-based libraries
  • common file and stream based operations
  • streams and event emitters modeled as asynchronous iterators
  • seamless integration between synchronous and asynchronous operations
  • … and more!

You can get a feel for what Fairmont can do for you by checking out the examples.

Fairmont uses literate programming, so each source file doubles as documentation. Please see the source directory for more.

Fairmont is still under heavy development and is beta quality, meaning you should probably not use it in your production code.

You can get an idea of what we're planning by looking at the issues list. If you want something that isn't there, and you think it would be a good addition, please open a ticket.