Skip to content
forked from marblejs/marble

Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.

License

Notifications You must be signed in to change notification settings

besrabasant/marble

Repository files navigation

Marble.js logo

Travis-CI status npm version Codecov coverage Maintained with lerna

Functional reactive HTTP middleware framework built on top of Node.js platform, TypeScript and RxJS library.

Philosophy

If you don't have any experience with functional reactive programming, we strongly recommend to gain some basic overview first with ReactiveX intro or with The introduction to Reactive Programming you've been missing written by @andrestaltz.

If we think closely how typical HTTP API works we can quickly recognize that it deals with streams of asynchronous events also called as HTTP requests. Describing it very briefly - typically each request needs to be transformed into response that goes back to the client (which is our event initiator) using custom middlewares or designated endpoints. In reactive programming world, all those core concepts we can translate into very simple marble diagram:

Marble.js core concept

In this world everything is a stream. The core concept of Marble.js is based on the event flow of marble diagrams which are used to visually express time based behavior of HTTP streams. Ok, but why the heck we need those observables? Trends come and go, but asynchronously nature of JavaScript and Node.js platform constantly evolves. With reactive manner we can deliver complex features faster by providing the ability to compose complex tasks with ease and with less amount of code. If you have ever worked with libraries like Redux Observable, @ngrx/effects or other libraries that leverages functional reactive paradigm, you will feel like at home. Still there? So lets get started!

Documentation

For the latest updates, documentation, change log, and release information visit marblejs.com and follow @marble_js on Twitter.

Examples

To view the example project structure, clone the Marble.js repository and install the dependencies:

$ git clone git://github.com/marblejs/marble.git
$ cd marble
$ npm i
$ cd example

To run example just execute following command inside root repository folder:

$ npm run start

Roadmap

Marble.js is not yet a final and production ready product. Its APIs can improve over time when reaching stable version 1.0.0. But in the meantime you can play easily and contribute to the growing community of functional reactive programming freaks.

Authors

Józef Flakus

contact: [email protected]

twitter: @jozflakus

Contributors

Sebastian Musial

Patryk Domałeczny

Lúcio Rubens

License

marble.js is MIT licensed

About

Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 98.7%
  • JavaScript 1.1%
  • Other 0.2%