# Router is a simple and lightweight routing library for SPA

Router is a simple and lightweight routing library for JavaScript applications. It allows you to define routes and handle navigation between different views or pages in your application.


![Alt](https://repobeats.axiom.co/api/embed/eb2612dbd56d0bb9d304b2bea9302dbb2d021b39.svg "Repobeats analytics image")

#### Status
![Dependencies](https://img.shields.io/badge/Dependencies-none-darklime.svg)
![Package Version](https://img.shields.io/github/package-json/v/olton/router)
![GitHub Release](https://img.shields.io/github/v/release/olton/router)
![NPM Version](https://img.shields.io/npm/v/%40olton%2Frouter)
![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?color=7852a9)
![Code size](https://img.shields.io/github/languages/code-size/olton/router.svg?color=830000)
![GitHub JS Size](https://img.shields.io/github/size/olton/router/lib%2Frouter.js?label=JS%20Size&color=8f99ff)


## Features
- [x] Add/Remove routes
- [x] Middleware support
- [x] Before and after hooks
- [x] Route parameters
- [x] Query parameters
- [x] History-based routing
- [x] Cache management

## Documentation

Read about `Router` usage in the [Metro UI](https://docs-new.metroui.org.ua/libraries/router) documentation.

## License

Router is licensed under a [MIT license](LICENSE).

## Sponsors

No sponsor yet :(
Support this project by [donating](https://www.patreon.com/metroui).

---
Copyright © 2025 by [Serhii Pimenov](https://pimenov.com.ua)