1 | # Universal Router
|
2 |
|
3 | [![NPM version](http://img.shields.io/npm/v/universal-router.svg?style=flat-square)](https://www.npmjs.com/package/universal-router)
|
4 | [![NPM downloads](http://img.shields.io/npm/dm/universal-router.svg?style=flat-square)](https://www.npmjs.com/package/universal-router)
|
5 | [![Build Status](http://img.shields.io/travis/kriasoft/universal-router/master.svg?style=flat-square)](https://travis-ci.org/kriasoft/universal-router)
|
6 | [![Coverage Status](https://img.shields.io/coveralls/kriasoft/universal-router.svg?style=flat-square)](https://coveralls.io/github/kriasoft/universal-router)
|
7 | [![Dependency Status](http://img.shields.io/david/kriasoft/universal-router.svg?style=flat-square)](https://david-dm.org/kriasoft/universal-router)
|
8 | [![Online Chat](http://img.shields.io/badge/chat_room-%23universal--router-blue.svg?style=flat-square)](https://gitter.im/kriasoft/universal-router)
|
9 |
|
10 | > A simple middleware-style router for
|
11 | [isomorphic](http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/) JavaScript web apps
|
12 |
|
13 | Visit **[Quickstart Guide](http://slides.com/koistya/universal-router)** (slides) |
|
14 | Join **[#universal-router](https://gitter.im/kriasoft/universal-router)** on Gitter to stay up to date
|
15 |
|
16 |
|
17 | ## Documentation
|
18 |
|
19 | * [Overview](https://github.com/kriasoft/universal-router/blob/master/docs/README.md)
|
20 | * [Getting Started](https://github.com/kriasoft/universal-router/blob/master/docs/getting-started.md)
|
21 | * [Universal Router API](https://github.com/kriasoft/universal-router/blob/master/docs/api.md)
|
22 |
|
23 |
|
24 | ## Learn ES6
|
25 |
|
26 | :mortar_board: **[ES6 Training Course](https://es6.io/friend/konstantin)** by Wes Bos<br>
|
27 | :green_book: **[You Don't Know JS: ES6 & Beyond](http://amzn.to/2bFss85)** by Kyle Simpson (Dec, 2015)<br>
|
28 |
|
29 |
|
30 | ## Sponsors
|
31 |
|
32 | Does your company use Universal Router in production? Please consider
|
33 | [sponsoring this project](https://opencollective.com/universal-router#sponsor).
|
34 | Your help will allow maintainers to dedicate more time and resources to its development and support.
|
35 |
|
36 | <a href="https://opencollective.com/universal-router/sponsor/0/website" target="_blank">
|
37 | <img src="https://opencollective.com/universal-router/sponsor/0/avatar.svg" height="64">
|
38 | </a>
|
39 | <a href="https://opencollective.com/universal-router/sponsor/1/website" target="_blank">
|
40 | <img src="https://opencollective.com/universal-router/sponsor/1/avatar.svg">
|
41 | </a>
|
42 | <a href="https://opencollective.com/universal-router/sponsor/2/website" target="_blank">
|
43 | <img src="https://opencollective.com/universal-router/sponsor/2/avatar.svg">
|
44 | </a>
|
45 | <a href="https://opencollective.com/universal-router/sponsor/3/website" target="_blank">
|
46 | <img src="https://opencollective.com/universal-router/sponsor/3/avatar.svg">
|
47 | </a>
|
48 | <a href="https://opencollective.com/universal-router/sponsor/4/website" target="_blank">
|
49 | <img src="https://opencollective.com/universal-router/sponsor/4/avatar.svg">
|
50 | </a>
|
51 | <a href="https://opencollective.com/universal-router/sponsor/5/website" target="_blank">
|
52 | <img src="https://opencollective.com/universal-router/sponsor/5/avatar.svg">
|
53 | </a>
|
54 | <a href="https://opencollective.com/universal-router/sponsor/6/website" target="_blank">
|
55 | <img src="https://opencollective.com/universal-router/sponsor/6/avatar.svg">
|
56 | </a>
|
57 | <a href="https://opencollective.com/universal-router/sponsor/7/website" target="_blank">
|
58 | <img src="https://opencollective.com/universal-router/sponsor/7/avatar.svg">
|
59 | </a>
|
60 | <a href="https://opencollective.com/universal-router/sponsor/8/website" target="_blank">
|
61 | <img src="https://opencollective.com/universal-router/sponsor/8/avatar.svg">
|
62 | </a>
|
63 | <a href="https://opencollective.com/universal-router/sponsor/9/website" target="_blank">
|
64 | <img src="https://opencollective.com/universal-router/sponsor/9/avatar.svg">
|
65 | </a>
|
66 |
|
67 |
|
68 | ## Backers
|
69 |
|
70 | ♥ Universal Router? [Become a backer](https://opencollective.com/universal-router#backer)
|
71 | to show your support and help us maintain and improve this open source project.
|
72 | Get your image on our README with a link to your site.
|
73 |
|
74 | <a href="https://opencollective.com/universal-router/backer/0/website" target="_blank">
|
75 | <img src="https://opencollective.com/universal-router/backer/0/avatar.svg" height="64">
|
76 | </a>
|
77 | <a href="https://opencollective.com/universal-router/backer/1/website" target="_blank">
|
78 | <img src="https://opencollective.com/universal-router/backer/1/avatar.svg">
|
79 | </a>
|
80 | <a href="https://opencollective.com/universal-router/backer/2/website" target="_blank">
|
81 | <img src="https://opencollective.com/universal-router/backer/2/avatar.svg">
|
82 | </a>
|
83 | <a href="https://opencollective.com/universal-router/backer/3/website" target="_blank">
|
84 | <img src="https://opencollective.com/universal-router/backer/3/avatar.svg">
|
85 | </a>
|
86 | <a href="https://opencollective.com/universal-router/backer/4/website" target="_blank">
|
87 | <img src="https://opencollective.com/universal-router/backer/4/avatar.svg">
|
88 | </a>
|
89 | <a href="https://opencollective.com/universal-router/backer/5/website" target="_blank">
|
90 | <img src="https://opencollective.com/universal-router/backer/5/avatar.svg">
|
91 | </a>
|
92 | <a href="https://opencollective.com/universal-router/backer/6/website" target="_blank">
|
93 | <img src="https://opencollective.com/universal-router/backer/6/avatar.svg">
|
94 | </a>
|
95 | <a href="https://opencollective.com/universal-router/backer/7/website" target="_blank">
|
96 | <img src="https://opencollective.com/universal-router/backer/7/avatar.svg">
|
97 | </a>
|
98 | <a href="https://opencollective.com/universal-router/backer/8/website" target="_blank">
|
99 | <img src="https://opencollective.com/universal-router/backer/8/avatar.svg">
|
100 | </a>
|
101 | <a href="https://opencollective.com/universal-router/backer/9/website" target="_blank">
|
102 | <img src="https://opencollective.com/universal-router/backer/9/avatar.svg">
|
103 | </a>
|
104 |
|
105 |
|
106 | ## Related Projects
|
107 |
|
108 | * [React Starter Kit](https://github.com/kriasoft/react-starter-kit) —
|
109 | Isomorphic web app boilerplate (Node.js, React, GraphQL, Webpack, CSS Modules)
|
110 | * [Node.js API Starter Kit](https://github.com/kriasoft/nodejs-api-starter) —
|
111 | Boilerplate and tooling for building data APIs with Node.js, GraphQL and Relay
|
112 | * [ASP.NET Core Starter Kit](https://github.com/kriasoft/aspnet-starter-kit) —
|
113 | Cross-platform single-page application boilerplate (ASP.NET Core, React, Redux)
|
114 | * [Babel Starter Kit](https://github.com/kriasoft/babel-starter-kit) —
|
115 | JavaScript library boilerplate (ES2015, Babel, Rollup, Mocha, Chai, Sinon, Rewire)
|
116 | * [React App SDK](https://github.com/kriasoft/react-app) —
|
117 | Create React apps with just a single dev dependency and zero configuration
|
118 | * [React Static Boilerplate](https://github.com/koistya/react-static-boilerplate) —
|
119 | Single-page application (SPA) starter kit (React, Redux, Webpack, Firebase)
|
120 | * [History](https://github.com/mjackson/history) —
|
121 | HTML5 History API wrapper library that handle navigation in single-page apps
|
122 |
|
123 |
|
124 | ## Support
|
125 |
|
126 | * [#universal-router](https://gitter.im/kriasoft/universal-router) on Gitter —
|
127 | Watch announcements, share ideas and feedback
|
128 | * [GitHub Issues](https://github.com/kriasoft/universal-router/issues) —
|
129 | Check open issues, send feature requests
|
130 | * [@koistya](https://twitter.com/koistya) on [Codementor](https://www.codementor.io/koistya),
|
131 | [HackHands](https://hackhands.com/koistya/)
|
132 | or [Skype](https://hatscripts.com/addskype?koistya) — Private consulting
|
133 |
|
134 |
|
135 | ## Contributing
|
136 |
|
137 | Anyone and everyone is welcome to
|
138 | [contribute](https://github.com/kriasoft/universal-router/blob/master/CONTRIBUTING.md) to this project.
|
139 | The best way to start is by checking our [open issues](https://github.com/kriasoft/universal-router/issues),
|
140 | [submit a new issues](https://github.com/kriasoft/universal-router/issues/new?labels=bug) or
|
141 | [feature request](https://github.com/kriasoft/universal-router/issues/new?labels=enhancement),
|
142 | participate in discussions, upvote or downvote the issues you like or dislike, send [pull
|
143 | requests](https://github.com/kriasoft/universal-router/blob/master/CONTRIBUTING.md#pull-requests).
|
144 |
|
145 |
|
146 | ## License
|
147 |
|
148 | Copyright © 2015-present Kriasoft, LLC.
|
149 | This source code is licensed under the MIT license found in the
|
150 | [LICENSE.txt](https://github.com/kriasoft/universal-router/blob/master/LICENSE.txt) file.
|
151 | The documentation to the project is licensed under the
|
152 | [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/) license.
|
153 |
|
154 |
|
155 | ---
|
156 | Made with ♥ by
|
157 | Konstantin Tarkus ([@koistya](https://twitter.com/koistya), [blog](https://medium.com/@tarkus)),
|
158 | Vladimir Kutepov ([frenzzy](https://github.com/frenzzy)) and
|
159 | [contributors](https://github.com/kriasoft/universal-router/graphs/contributors)
|