Molen is a prototype aimed at exploring how to apply Functional and Reactive Programming to the back-end.
Please take note that this is still highly experimental, and the API is unlikely to be perfect (and hence likely to change).
The experiment has ended; the code is primarily preserved for posterity. My primary conclusion would be that FRP is not especially better-suited to regular web server use cases than, say, Express. The main reason for this is that advanced async operations do not play a large role in such use cases, and since the ecosystem is not designed around Observables, the marshalling of data into and out of Observables, combined with the added indirection, is not worth the benefits.
If you are interested in using the npm package name
molen, contact molen+npm@VincentTunru.com.
Molen is built around the idea that asynchronicity plays a large role in many back-ends, and that many common operations can benefit from the reactive paradigm. For example, reactive operators can make it trivial to limit the amount of requests, time-out operations that take too long, retry failed actions, throttle requests, etc.
Furthermore, Molen aims to minimise the programmer's cognitive load and thus reduce the number of bugs. The two main tools to achieve this are by encouraging programming without side effects, and by being written in TypeScript.
For more information, take a look at the design principles.
npm install molen
Unfortunately there is no extensive documentation on how to get started yet, because the API is not yet final. However, do check out the example project for basic usage.
A simple HTTP server
An AWS Lambda function
A WebSocket server
See the Changelog.
Submit ideas through the issue tracker.
See CONTRIBUTING.md for more info.
Molen is licensed under the MIT license.