Sign inDemoInstall


Package Overview
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies



Version published



npm (scoped) npm NPM npm type definitions

⚡ rx-js-light

rx-js-light is simply the fastest and smallest javascript library for Reactive Programming, providing different tools to generate, consume, and pipe Observables and Observers.

If Reactive Programming does not tell you much or is a new concept to you, you may take a look at this tutorial. In a few words, if you deal frequently with async programming like events, timeouts, promises or streams (ex: front-end development), then rx-js-light is the perfect candidate for you.

Example: emulate double click

const subscribe = pipe$$(fromEventTarget(window, 'click'), [
  filter$$$((events: PointerEvent[]) => events.length === 2),
  map$$$((events: PointerEvent[]) => events[events.length - 1]),

subscribe((event: PointerEvent) => {
  console.log('double click', event);

Click here to see the live demo

Give it a try, and you'll love it !

📖 Table of content

📦 Installation

yarn add @lifaon/rx-js-light
# or
npm install @lifaon/rx-js-light --save

Click here to read the installation manual

📕 Documentation

Most of public functions or interfaces have their own documentation into a .md file in their respective directories.

🧲️ Pick the right function

I want to:

create an Observable from

without notifications

with notifications

convert an Observable to

without notifications

with notifications

create an ObservablePipe which

without notifications

with notifications

emit a value myself => create a Source which emits values to

🔥: most important functions

Can't find a function that suits your needs ? Open a discussion, or create your own and share it !

Differences with RxJS:

  • no classes: this choice allows blazing fast performances and very small bundle size. Indeed, creating a class with the new keyword is slow, and method names can't be mangled (minimized), where function calls are really well optimized by javascript engines. However, it has a minor cost: chaining operators or method calls are done through functions, which is a little less elegant (in terms of code readability).

  • no next, complete and error: instead this lib uses notifications. In reality, not all Observables require to emit a final state. For example, the RxJS interval never reaches a complete state. It just sends numbers. Moreover, some Observables may want to emit more than this 3 events: we may imagine an XHR Observable which emits an upload-progress and download-progress events.

  • some concepts / operators / methods may have a different behaviour or name. Take care to read the documentation before any hasty use.



Last updated on 09 Feb 2022

Did you know?


Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.


Related posts

SocketSocket SOC 2 Logo


  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap


Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc