# Awesome Observables

> An Observable is a collection that arrives over time. Observables can be used to model push-based data sources such as events, timer intervals, asynchronous requests, and animations. Observables can be transformed, combined, and consumed using array-like methods.

Please read the contribution guidelines before contributing.

## Contents

- Documentation
- Implementations
- Packages
- Libraries
- Articles
- Videos
- Related

## Documentation

- Overview
- Specification

## Implementations

- zen-observable
- RxJS

## Packages

- ObservableLike - TypeScript type.
- any-observable - Support any Observable library and polyfill.
- is-observable - Check if a value is an Observable.
- observable-to-promise - Convert an Observable to a Promise.
- stream-to-observable - Convert a Node.js stream into an Observable.
- symbol-observable - `Symbol.observable` ponyfill.
- obsify - Observableify a callback-style function.
- localForage-observable - Observables for localForage.

## Libraries

These are libraries that harness the power of Observables, not necessarily spec compatible Observable implementations.

- Cycle.js - A functional and reactive JavaScript framework for cleaner code.

## Articles

- The introduction to Reactive programming you’ve been missing - Reactive programming using Observables.
- Everywhereness as a foundation - Benefits of using Observables everywhere.
- Learning Observable By Building Observable (Updated 2021-07-08)

## Videos

- Introducing the Observable - Egghead.io lesson.

## Related

- awesome-nodejs

observables.md Github