Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

router5/router5

Flexible and powerful universal routing solution

router5/router5.json
{
"createdAt": "2015-06-29T12:28:12Z",
"defaultBranch": "master",
"description": "Flexible and powerful universal routing solution",
"fullName": "router5/router5",
"homepage": "https://router5.js.org",
"language": "TypeScript",
"name": "router5",
"pushedAt": "2023-01-07T05:57:10Z",
"stargazersCount": 1711,
"topics": [
"framework-agnostic",
"functional",
"javascript",
"react",
"reactive-programming",
"redux",
"router",
"routing",
"universal"
],
"updatedAt": "2025-10-24T15:14:25Z",
"url": "https://github.com/router5/router5"
}

npm version License: MIT Build Status Join the chat at https://gitter.im/router5/router5 styled with prettier

Official website: router5.js.org

router5 is a framework and view library agnostic router.

  • view / state separation: router5 processes routing instructions and outputs state updates.
  • universal: works client-side and server-side
  • simple: define your routes, start to listen to route changes
  • flexible: you have control over transitions and what happens on transitions
import createRouter from 'router5'
import browserPlugin from 'router5-plugin-browser'
const routes = [
{ name: 'home', path: '/' },
{ name: 'profile', path: '/profile' }
]
const router = createRouter(routes)
router.usePlugin(browserPlugin())
router.start()

With React (hooks)

import React from 'react'
import ReactDOM from 'react-dom'
import { RouterProvider, useRoute } from 'react-router5'
function App() {
const { route } = useRoute()
if (!route) {
return null
}
if (route.name === 'home') {
return <h1>Home</h1>
}
if (route.name === 'profile') {
return <h1>Profile</h1>
}
}
ReactDOM.render(
<RouterProvider router={router}>
<App />
</RouterProvider>,
document.getElementById('root')
)

With observables

Your router instance is compatible with most observable libraries.

import { from } from 'rxjs/observable/from'
from(router).map(({ route }) => {
/* happy routing */
})
  • With React: [code]!(./examples/react) | live