For state driven routers, the strongest matches are milad-akarie/auto_route_library (This repository provides type-safe declarative routing and navigation guards), vuejs/vue-router (Vue Router is a popular client-side routing library for) and remix-run/react-router (React Router provides declarative routing, nested layouts, and type-safe). vuejs/router and tanstack/router round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
Explore the best open-source state machine routers for GitHub. Compare top state-driven navigation tools, check GitHub stars, and find the right fit.
Auto Route is a type-safe routing framework for Flutter that utilizes compile-time code generation to manage application navigation. It replaces imperative push and pop commands with a declarative route configuration, allowing developers to define navigation hierarchies as structured objects. By automating the creation of navigation classes, the library ensures that route paths and arguments are validated during the build process. The framework distinguishes itself through its support for modular architecture, enabling the aggregation of independent route sets from separate modules into a sin
This repository provides type-safe declarative routing and navigation guards for Flutter, fitting the requested routing framework category even though it relies on compile-time code generation rather than a formal state machine.
Vue.js Client-Side Router is a routing library that maps browser URLs to Vue.js components to enable the creation of single-page applications. It functions as a navigation engine that manages browser history and URL state to allow page transitions without full browser reloads. The system utilizes a nested route manager to render hierarchical views that match complex URL structures. It includes navigation guard middleware to intercept, validate, or redirect route transitions before components are rendered. A client-side history handler synchronizes application state with the browser URL using
Vue Router is a popular client-side routing library for Vue applications that supports navigation guards and browser history management, though its routing is primarily driven by URL changes rather than a formal state machine.
React Router is a navigation and data-loading framework that maps URL patterns to nested component hierarchies. It functions as a full-stack router, coordinating server-side resource fetching with client-side hydration to synchronize application state across different environments. By providing a declarative interface for routing, it manages navigation and state transitions while ensuring consistent page structures through root layout management. The framework distinguishes itself through its focus on type safety and incremental adoption. It automatically generates static type definitions for
React Router provides declarative routing, nested layouts, and type-safe navigation, though its state management is primarily url-centric rather than strictly driven by an explicit state machine.
Vue.js Client-Side Router is a routing library for Vue.js that synchronizes the browser URL with application state to enable single-page application navigation. It functions as a URL-to-component mapper, rendering specific components based on the current URL path and dynamic route patterns. The project serves as a browser history manager that controls how internal routes map to the browser URL using various history strategies. It also provides a navigation guard framework to execute logic and access control during route transitions. The library covers dynamic route management, programmatic U
Vue Router synchronizes browser URLs with application state and provides navigation guards, though it maps URLs to components rather than driving application routing directly from a state machine model.
TanStack Router is a type-safe routing library for web applications that provides full type safety for paths, search parameters, and data loaders across the entire application stack. It functions as a comprehensive framework for server-side rendering, enabling the generation of complete HTML pages to improve initial load performance and search engine optimization. By integrating declarative data fetching, the library manages asynchronous information at the route level, supporting preloading, caching, and parallel request execution to ensure data is ready before components render. The project
TanStack Router is a type-safe web routing library that features declarative routes, data loaders, and URL synchronization, though its routing is primarily path- and parameter-driven rather than formally synchronized with an external state machine.
Router.js is a client-side JavaScript routing library designed for single-page applications. It maps browser URL patterns to named handlers and manages hierarchical route states, allowing applications to construct nested user interfaces and share parent contexts across child transitions. The library coordinates state changes through promise-based asynchronous transition management, waiting for model data to resolve and lifecycle hooks to execute before entering a target route. It supports URL parsing and generation, component navigation, and event bubbling that propagates triggered actions b
This library provides a structured routing architecture that manages application state transitions through explicitly defined states, though it lacks direct state machine integration and type-safe routes.
Redux-first-router is a state-driven JavaScript router library that maps URL paths, query parameters, and browser history directly to actions within a Redux application store. Instead of manipulating components or relying solely on declarative links, it updates the address bar and navigates the application by dispatching and receiving state container actions. The library translates bidirectionally between URL strings and action payloads using expressive route patterns, supporting dynamic path parsing, parameter constraints, wildcards, query strings, and custom formatting rules. It handles asy
This JavaScript routing library uses Redux actions to drive and synchronize application navigation, fulfilling the state-driven routing concept despite missing some advanced features like native type safety.
Redux Little Router is a front-end routing library and navigation state manager designed for single-page applications. It synchronizes browser history and navigation state directly inside the global application store tree. By translating browser location changes into plain store actions, the library enables action-driven navigation and centralized state synchronization across components. The routing architecture supports pattern-based route matching and bidirectional location translation, keeping application data and browser address bar locations aligned. It manages page navigation by evaluat
This JavaScript library syncs application state and browser history by treating the Redux store as the single source of truth for routing, fitting the state-driven router category well despite lacking native finite state machines.
UI-Router is a routing framework for AngularJS applications that maps URLs to a hierarchical tree of states and nested views. It functions as a state-based navigation engine, managing view transitions and dependencies through defined states rather than simple linear URL paths. The system acts as a nested view router, enabling the simultaneous rendering of multiple content areas by mapping application states to named views. It also serves as a client-side route controller, providing mechanisms to intercept transitions for authentication checks and resolve data dependencies before rendering vie
UI-Router is a state-based routing framework for AngularJS applications that explicitly maps URLs to a hierarchical tree of states rather than simple linear paths, fulfilling the core state-driven routing requirement despite its legacy framework constraint.
A tiny (673 bytes) router for Nano Stores state manager
This TypeScript repository provides a tiny URL router built directly for the Nano Stores state manager, making it a fitting state-driven routing tool despite lacking advanced features like guards and lazy loading.
A Router made for Redux and made for universal apps! stop using the router as a controller... it's just state!
This repository is a state-driven router that uses Redux state rather than a traditional controller, though it lacks modern type-safe routes and built-in route guards.
Director is a routing library for JavaScript that handles URL and command-line pattern matching across client-side, server-side, and CLI environments. It provides a unified approach to defining routes as nested object literals, where each key maps to a URL segment and its handler, supporting both hash fragment monitoring and the HTML5 History API for browser navigation without page reloads. The library distinguishes itself through its ability to operate in multiple contexts with a single routing paradigm. It supports asynchronous handler queue execution for sequential tasks like authenticatio
Director is a client-side and server-side JavaScript routing library that handles nested object-literal route definitions and browser history synchronization, making it a solid fit though it lacks explicit state machine integration.
| 仓库 | Star 数 | 语言 | 许可证 | 最后推送 |
|---|---|---|---|---|
| milad-akarie/auto_route_library | 1.7K | Dart | MIT | |
| vuejs/vue-router | 18.9K | JavaScript | MIT | |
| remix-run/react-router | 56.5K | TypeScript | MIT | |
| vuejs/router | 4.6K | TypeScript | MIT | |
| tanstack/router | 14.7K | TypeScript | MIT | |
| emberjs/router.js | 1.3K | TypeScript | MIT | |
| faceyspacey/redux-first-router | 1.6K | JavaScript | MIT | |
| formidablelabs/redux-little-router | 1K | JavaScript | MIT | |
| angular-ui/ui-router | 13.4K | TypeScript | MIT | |
| nanostores/router | 311 | TypeScript | MIT |