# Awesome Observables [![Awesome](https://awesome.re/badge.svg)](https://awesome.re)

> An [Observable](https://github.com/zenparsing/es-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](contributing.md) before contributing.*

## Contents

- [Documentation](#documentation)
- [Implementations](#implementations)
- [Packages](#packages)
- [Libraries](#libraries)
- [Articles](#articles)
- [Videos](#videos)
- [Related](#related)

## Documentation

- [Overview](https://github.com/tc39/proposal-observable)
- [Specification](https://tc39.github.io/proposal-observable/)

## Implementations

- [zen-observable](https://github.com/zenparsing/zen-observable)
- [RxJS](https://github.com/ReactiveX/RxJS)

## Packages

- [ObservableLike](https://github.com/sindresorhus/type-fest/blob/main/source/observable-like.d.ts) - TypeScript type.
- [any-observable](https://github.com/sindresorhus/any-observable) - Support any Observable library and polyfill.
- [is-observable](https://github.com/sindresorhus/is-observable) - Check if a value is an Observable.
- [observable-to-promise](https://github.com/sindresorhus/observable-to-promise) - Convert an Observable to a Promise.
- [stream-to-observable](https://github.com/jamestalmage/stream-to-observable) - Convert a Node.js stream into an Observable.
- [symbol-observable](https://github.com/blesh/symbol-observable) - `Symbol.observable` ponyfill.
- [obsify](https://github.com/samverschueren/obsify) - Observableify a callback-style function.
- [localForage-observable](https://github.com/thgreasi/localForage-observable) - Observables for localForage.

## Libraries

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

- [Cycle.js](http://cycle.js.org) - A functional and reactive JavaScript framework for cleaner code.

## Articles

- [The introduction to Reactive programming you've been missing](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754) - Reactive programming using Observables.
- [Everywhereness as a foundation](http://staltz.com/everywhereness-as-a-foundation.html) - Benefits of using Observables everywhere.
- [Learning Observable By Building Observable](https://benlesh.com/posts/learning-observable-by-building-observable/) *(Updated 2021-07-08)*

## Videos

- [Introducing the Observable](https://egghead.io/lessons/javascript-introducing-the-observable) - Egghead.io lesson.

## Related

- [awesome-nodejs](https://github.com/sindresorhus/awesome-nodejs)

[observables.md Github](https://github.com/sindresorhus/awesome-observables
)
