> For the complete documentation index, see [llms.txt](https://router5.js.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://router5.js.org/guides/observing-state.md).

# Observing state

From router5\@6.1.0 and onwards, your router instance is compatible with most observable libraries.

## Subscribing to state changes

You can subscribe to route changes using `router.subscribe()`, and will receive an object containing `route` and `previousRoute`.

## Observing state changes

Router instances are observables. You can use most stream libraries out there and create a stream from your router instance:

* RxJS (`Rx.Observable.from(router)`)
* xstream (`xs.fromObservable(router)`)
* most (`most.from(router)`)
* etc...
